pthread-join

    -1熱度

    2回答

    我正在嘗試使用多線程程序,並且pthread_join函數出現錯誤。從這段代碼的輸出是: after pthread_create Segmentation fault (core dumped) 這裏是代碼: #include <pthread.h> #include <stdio.h> #include <stdlib.h> void *myfunc1() { //

    0熱度

    1回答

    我想在C中使用pthread來比較兩個字符串。這個想法是看看完整的字符串2是否在字符串1中(例如,如果string1 = lkajdsgl和string2 = jd然後我會有一個匹配)。我不明白的是pthread如何以一般方式工作。這裏我創建我的pthreads,假設爲NUM_THREADS=3,那麼我應該有3個線程,線程[0],線程[1]和線程[2]。每個將調用Pthrd_Substring函數

    0熱度

    1回答

    在多線程程序中,我需要根據線程並行計算的估計來分配共享內存,然後在所有線程之間(同步之後)使用該共享內存。有沒有辦法這樣做,而不加入線程和產生新的線程? 爲了簡化我試圖如下做: 16個線程估計的存儲器中並行 所需的大小聲明估計大小的共享存儲器 線程繼續在共享它們的執行內存 我正在使用pthreads庫和pthread_barrier_wait多線程。

    0熱度

    2回答

    只是一個測試多線程的小程序。它應該用線索索引和線程位置打印出'Hello'消息。 我讀why pthread cause memory leak並試圖使用pthread_join。看來,內存泄漏仍然 以下是我的代碼: #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <sys/types.h> #inc

    0熱度

    1回答

    在研究多線程時,我編寫了下面的代碼,但在屏幕上沒有觀察到輸出。我在這裏做錯了什麼?我預期的輸出如下: X modified by threadFunc 1 X modified by threadFunc 2 ,但沒有看到在屏幕上,程序不會退出。 #include <stdio.h> #include <pthread.h> pthread_mutex_t globalMutex[2]

    0熱度

    1回答

    我有一個項目,我正在將作業添加到隊列中,並且我有多個線程正在進行作業,並計算出自己的獨立結果。 我的程序處理SIGINT信號,我試圖加入線程來合併結果,打印到屏幕,然後退出。我的問題是,當我發送信號時線程似乎停止工作,或者他們在mutex_lock上被阻塞。這裏是我的程序的重要部分,以便簡潔。 的main.c //the thread pool has a queue of jobs inside

    -2熱度

    3回答

    當我運行下面的程序時,輸出是5. 爲什麼5?爲什麼不是8? void *doit(void *vargp) { int i = 3; int *ptr = (int*)vargp; (*ptr)++; } int main() { int i = 0; pthread_t tid; pthread_create(&tid, NULL,

    -2熱度

    1回答

    我寫使用POSIX pthread庫下面的代碼在pthread_join崩潰: #include <stdlib.h> #include <pthread.h> void *thread_function(void *arg) { char *code = "1"; } int main() { int res; pthread_t a_thread; void *th

    1熱度

    1回答

    我寫了這個小程序來理解pthread_create和pthread_join,但我不明白爲什麼變量data的值在thread_join之後被修改。它在調用pthread函數後打印爲0。 #include <pthread.h> #include <stdio.h> void* compute_prime (void* arg) { int n = *((int*) arg);

    0熱度

    2回答

    主線程產生> 1個線程,並且它們每個都可以返回一個錯誤值。如果發生這種情況,其他線程繼續進行是沒有意義的,因此應該取消它們。 所以,我想我的主線程: 加入與哪個線程首先完成; 檢查此線程是否返回了錯誤,如果是,請取消所有其他線程。 但是,pthread_join要求我指定要加入哪個線程。如果我打電話,例如,pthread_join(thread1, thread1_ret)和thread2完成,出