C Thread Problemi
-
-
uplu edit threadlerde çalışan işlemler socketlerle alakalı. İkinci threadde ki socket çalıştıgı zaman ilk threadde ki socket çalışmıyor.
-
Tam emin değilim uzun zaman oldu mutex metodu ile threadları senkronize ediyordun sanırım ? Stream socket mi kullanıyorsun ? İstersen elimde ders notları var gönderebilirim.
Kodları yazarsan yardımcı olmaya çalışırım.
Diffstorm tarafından 27/Eki/16 21:02 tarihinde düzenlenmiştir -
Evet hocam stream soket kullanıyorum ders notlarını paylaşırsanız sevinirim bnun dışında kodun belli yerlerini size pm olarak attım yardımcı olursanız sevinirim.
-
Tamam hocam, eve geçince bakarım. Yalnız senden gelen mesaj yok.
-
Hocam siz konuya mesaj yazdıktan 15 saniye sonra gönderdim şu anda gönderildi diye gözüküyor.
-
En basit ornegi bu olur hocam. Butun threadlerin bitmesini beklemek icin pthread_join kullanabilirsin. Farkli bir kullanim sleep() ile theadleri aynı anda cagirabilirsin.
#include <pthread.h> #include <stdio.h> #include <stdlib.h> #define THREAD_SAYISI 5 void *MerhabaDunya(void *threadid) { long tid; tid = (long)threadid; printf("Merhaba dünya! thread #%ld!\n", tid); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[THREAD_SAYISI]; int rc; long t; for(t=0;t<THREAD_SAYISI;t++){ printf("Thread olusturuluyor %ld\n", t); rc = pthread_create(&threads[t], NULL, MerhabaDunya, (void *)t); if (rc){ printf("HATA; pthread_create() is %d\n", rc); exit(-1); } } /* Ve son olarak calling threadimizi sonlandiriyoruz */ pthread_exit(NULL); }
-
mirturk bunu yazdı
En basit ornegi bu olur hocam. Butun threadlerin bitmesini beklemek icin pthread_join kullanabilirsin. Farkli bir kullanim sleep() ile theadleri aynı anda cagirabilirsin.
#include #include #include #define THREAD_SAYISI 5 void *MerhabaDunya(void *threadid) { long tid; tid = (long)threadid; printf("Merhaba dünya! thread #%ld!\n", tid); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[THREAD_SAYISI]; int rc; long t; for(t=0;t<THREAD_SAYISI;t++){ printf("Thread olusturuluyor %ld\n", t); rc = pthread_create(&threads[t], NULL, MerhabaDunya, (void *)t); if (rc){ printf("HATA; pthread_create() is %d\n", rc); exit(-1); } } /* Ve son olarak calling threadimizi sonlandiriyoruz */ pthread_exit(NULL); }
Thread'i beklemek şart mı? paralel olarak çalıştıramaz mıyım? multithread yapmak istememin sebeb zaten paralel çalıştırmam
-
Syntax highlighter kodun amina koymus.. Neyse hoca sen herseyi birak bole sormayla kod ornekleriyle tam kavranilacak bisi degil. Biran once bir tutorial serisi fln bul ona basla.
#include <stdio.h> #include <pthread.h> void one(int *); void two(int *); void oky(int, int); int r1 = 0, r2 = 0; extern int main(void) { pthread_t thread1, thread2; pthread_create(&thread1, NULL, (void *) one, (void *) &r1); pthread_create(&thread2, NULL, (void *) two, (void *) &r2); pthread_join(thread1, NULL); pthread_join(thread2, NULL); oky(r1, r2); return 0; }