pthread-join

    0熱度

    3回答

    我正在編寫一個使用線程的c程序,並且我還希望捕獲用戶的Ctrl + C信號。所以,在我開始多線程之前,我讓信號捕捉。 我的主線程(我的意思是除了程序運行的實際主線程),是一種處理用戶輸入的方法,並且我也將該線程加入主程序線程。 問題是,當測試並按Ctrl + C退出程序時,負責接收用戶輸入的線程不會關閉,直到我在鍵盤上點擊「返回」 - 就像它卡在無限循環中一樣。 當通過鍵入'q'退出時,所有線程都

    -1熱度

    1回答

    如果用戶在命令行中只輸入1個數字,該程序將正常工作。它會分解主要因素並將它們輸出到控制檯。 [email protected]:~/assn3$ ./assn3 12 12: 2, 2, 3, 我的問題是,當我測試了這兩種其他情況: A)多參數: [email protected]:~/assn3$ ./assn3 10 8 6 10: 2, 5, 8: 2, 5, 6: 2, 5,

    2熱度

    1回答

    我偶然發現了一個代碼示例here。 { ... void *res; ... s = pthread_join(tinfo[tnum].thread_id, &res); ... free(res); /* Free memory allocated by thread */ } 任何人都可以深入到並行線程比我在free(res)發表評論,請:引起我的注意(所有其他行跳過)的線

    0熱度

    1回答

    我正在使用使用PIN工具執行工作負載的硬件模擬器。作爲工作量,我使用下面的代碼。雖然它可以在Ubuntu上運行,但是在加入線程時它會在模擬器上凍結。 我認爲在這段代碼中有一些不安全的地方,本機操作系統可以容忍,但模擬器不能。什麼是最合適的方式來編碼? main.h: #include <stdlib.h> #include <iostream> #include <fstream> #inc

    0熱度

    1回答

    下面的代碼只是創建兩個線程並嘗試獲取它們的返回值。我已經在32位glibc-2.15系統上編譯並運行了它,並且所有代碼都正確(輸出:r1:1,r2:2)。但是,當我在64位glibc-2.17系統上做同樣的事情時,輸出是錯誤的(輸出:r1:0,r2:2)。爲什麼相同的代碼在不同的系統上表現不同? 注意:如果將r1和r2的類型更改爲void*或int*(如下面的註釋),則代碼在兩個系統上均適用。 #

    3熱度

    1回答

    #include <stdio.h> #include "mythreads.h" #include <stdlib.h> #include <pthread.h> void * mythread(void *arg) { printf("%s\n", (char *) arg); return NULL; } int main(int argc, char

    0熱度

    1回答

    我有一個使用pthreads的對象。它的構造函數創建了幾個線程。 該類的析構函數在所有這些線程上調用pthread_join。 刪除過程中會發生什麼,如果沒有?也就是說,如果刪除操作符突然嘗試釋放對象,那麼未被終止的線程會發生什麼? 在此先感謝所有答覆。 :)

    0熱度

    1回答

    我用pthread_join函數在昨天遇到了問題,它出現complie錯誤,我在網上搜索很久,但沒有解決它。 pthread_join.c #include <stdio.h> #include <pthread.h> void* say_hello(void* args) { printf("hello from thread\n"); pthread_exi

    0熱度

    2回答

    這個問題是在pthread_create的聲明: int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void * (*start_routine) (void *), void *arg); 它包含一個函數的start_routine。 所以,當我們調用pthread_create時,函數將執行par

    0熱度

    1回答

    我是多線程編程的新手,我正在關注this tutorial。在教程中,有一個簡單的例子,顯示如何使用pthread_create()和pthread_join()。我的問題是:爲什麼我們不能將pthread_join()放在與pthread_create()相同的循環中? 代碼以供參考: #include <stdio.h> #include <stdlib.h> #include <pthr