在研究多線程時,我編寫了下面的代碼,但在屏幕上沒有觀察到輸出。我在這裏做錯了什麼?我預期的輸出如下: X modified by threadFunc 1
X modified by threadFunc 2
,但沒有看到在屏幕上,程序不會退出。 #include <stdio.h>
#include <pthread.h>
pthread_mutex_t globalMutex[2]
我有一個項目,我正在將作業添加到隊列中,並且我有多個線程正在進行作業,並計算出自己的獨立結果。 我的程序處理SIGINT信號,我試圖加入線程來合併結果,打印到屏幕,然後退出。我的問題是,當我發送信號時線程似乎停止工作,或者他們在mutex_lock上被阻塞。這裏是我的程序的重要部分,以便簡潔。 的main.c //the thread pool has a queue of jobs inside
當我運行下面的程序時,輸出是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,