Pthread ile saniyede 10 defa çalışan thread?

Başlatan mir_as82, 07 Aralık 2015, 19:05:08

mir_as82

Main thread devamlı olarak çalışacak, ama bu çalışma esnasında başka bir thread de bir saniyede 10 defa çalışacak.
Bunu nasıl yaparım? Main thread hiç sonlanmayacak.

t2

#1
Thread prototipini hazırlarız. Thread  döngüsü içinde 100ms sleep olsun.

bu threadden kopya olarak, Ana thread icinden  10 tane   baslatiriz. Th1 Th2... Gibi
Hepsi krallar gibi çalışır.  Burada sleep çok önemli. Aksi halde threadlerin hepsi çalışamaz. Ana thread içinde döngü ve sleep olması gereksiz. Fakat varsa  10ms sleep de ona ekleyelim.
Özellikle sorunu görmek için tek cekirdekli makinede denemek gerek.

mir_as82

Peki hocam,
Main program başladıktan sonra pthread_create ile 10 defa çalışacak threadi başlatsak, ve while döngüsu içinde 10 defa isleyecek kodu calistirsak ve timeri baslatsak, kod bloğunun sonunda timer i durdurup, 15 MS sursun kod bloğu, 85ms daha bekletsek o kod bloğunu ve sonra fonksiyon u yeniden çalıştırsak?

Main threadin en altına return 0 dan önce pthread_join e parametre olarak ikinci threadin id sini versek.
Bu yaptığım çözüm olur mu?

t2

#3
pthread, pthread_join bunlar nedir ? Hangi dilde oluyor?

Delphide tthread sınıfı var krallar gibi çalışıyor.

Aynı anda yapılacak işler varsa hepsine ayrı thread ayarlanir. Tümü suspended olarak başlatır. Sonra hemen hepsi beraber resume edilir. Hepsi güzelce çalışır. Durması istenen thread, dışarıdan bir public degiskeni gözler. Ve durur.

mir_as82

Pthread Bunlar linux thread kütüphane fonksiyonlari