[Linux-programlama] Eşzamanlı Thread

---------

[Linux-programlama] Eşzamanlı Thread

From: Ahmet Emre Aladağ <aladagemre_at_gmail.com>
Date: Mon, 29 Oct 2007 21:35:14 +0200
Message-ID: <b438d8400710291235s1ba4274cg74f648216f46b25e@mail.gmail.com>

Merhabalar,

pthread kütüphanesi ile 2 thread oluşturup bu iki thread'in eşzamanlı
gitmesini istiyorum.
runner fonksiyonunun yaptığı şey List adlı, list_size boyutlu dizinin
integer elemanlarını soldan veya sağdan sayarak bastırmak.
Eğer parametre 0 ise soldan ortaya kadar, 1 ise sağdan ortaya kadar sayıyor.

Ancak ne yaptıysam bu iki sayma işlemini eşzamanlı yapamadım.
Liste: 9 10 6 9 12 11 11 2 11 10 8 7
Sonuç:
9 10 6 9 12 11 7 8 10 11 2 11

Oluyor. Halbuki ben,
9 7 10 8 6 11 9 2 12 11 11 gibi bir sıralamanın olmasını istiyordum. Bir
baştan bir sondan. pthread_join fonksiyonu sanırım bekletiyor. Ama onu
kullanmazsam da bu sefer hiçbir çıktı olmuyor.

Kullandığım thread fonksiyonları aşağıdaki gibi. Acaba sorun nerede
olabilir?

    pthread_t tid1,tid2; /* the thread identifier */
    pthread_attr_t attr1,attr2; /* set of attributes for the thread */

    fill_random(List, list_size);

    pthread_attr_init(&attr1);
    pthread_attr_init(&attr2);
    pthread_create(&tid1,&attr1,runner, 0 );
    pthread_create(&tid2,&attr2,runner, 1 );
    pthread_join(tid1,NULL);
    pthread_join(tid2,NULL);

Not1: Araştırma yaptım ancak örneklerde çok sayıda fonksiyon olduğu için
kafam daha çok karıştı.
Not2: Bu kadar küçük bir şey için thread kullanmaya gerek yok, biliyorum ama
bu, İşletim Sistemleri dersinde bana verilen ödevin sadeleştirilmiş hali.
Bunu çözersem, o da çözülmüş olacak.

Çok teşekkürler...

-- 
Ahmet Emre Aladağ
http://www.emrealadag.com

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Mon 29 Oct 2007 - 21:04:26 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.