![](/img/trans.png)
[英]How to prevent memory leaks in pthreads?
如何防止 pthread 中的 memory 泄漏? 我正在運行一個服務器客戶端程序,其中服務器必須執行 pthread 程序並將結果發送給客戶端。 客戶端不斷地請求命令,直到停止。 服務器提供的結果僅在第一次迭代中為真,但在第二次迭代中提供的結果不正確。 我嘗試使用 pthread_join 和 ...
[英]How to prevent memory leaks in pthreads?
如何防止 pthread 中的 memory 泄漏? 我正在運行一個服務器客戶端程序,其中服務器必須執行 pthread 程序並將結果發送給客戶端。 客戶端不斷地請求命令,直到停止。 服務器提供的結果僅在第一次迭代中為真,但在第二次迭代中提供的結果不正確。 我嘗試使用 pthread_join 和 ...
[英]what's the meaning of "(void *)2" in c code?
我最近讀了一本關於如何在 unix 環境中編寫代碼的書。有一個示例代碼讓我很困惑。 示例代碼: 如何找出“(void *)1”或“(void *)2”? 可以將類型“void *”轉換為“long”嗎? 在我看來,“(void *)1”告訴我 1 是一個地址,但是當我使用 deref 來獲取存儲在 ...
[英]Why does one of my ways of passing retval (void *) to pthread_exit() give unexpected results?
今天是我使用線程的第一天。 我很難理解為什么我無法通過以下兩種方式傳遞 retval(類型:void *)(即,只有一種方式會給出預期的結果,如下所示)。 我將提供我的代碼的簡化版本: 當我在我的 Linux 終端上編譯上述源代碼時: 然后執行: 我得到以下輸出: 但是,如果我在上 ...
[英]Properties of pthread_exit function : which one is right?
在 CSAPP 書第 12.3 節中,他們說.. 線程通過調用pthread_exit function顯式終止。 如果主線程調用pthread_exit ,它會等待所有其他對等線程終止,然后終止主線程和整個進程,返回值為 thread_return。 但是在pthread_exit的手冊頁中: ...
[英]terminate called without an active exception when calling pthread_exit in segmentation fault handler
你好嗎? 我將在 Ubuntu 18.04 上修復工作線程中的分段錯誤。 我的代碼如下。 代碼運行良好。 此代碼的 output 如下。 新線程成功運行 0 新線程成功運行 1 新線程成功運行 2 線程崩潰了 3 新線程成功運行 4 新線程成功運行 5 新線程成功運行 6 新線程成功運行 7 但是, ...
[英]pthread_exit() throws warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] warning
我一直在學習pthread庫,並創建了一個簡單的代碼來將兩個數字相乘,但是我無法擺脫這個警告。 附言。 代碼工作正常。 這是警告: 任何見解將不勝感激。 ...
[英]Incorrect local variable value after pthread_join
我試圖通過將數組拆分為大小為 10 的段來使用 pthread 庫總結 1000 個元素的整數數組(其中每個元素為 1)。因此,有效地使用了 100 個線程來執行此操作。 此並行操作的結果符合預期 (1000)。 但有趣的是,在我第一次調用pthread_join()之后,我在創建線程之前計算的順序 ...
[英]Thread termination with pthread_exit followed by return - Strange example
我找到了這個例子; 這里兩個線程 threadDefault 和 threadCustomized 通過使用 pthread_exit 然后返回來終止。 為什么作者寫了這兩個指令? ...
[英]Exit thread with return
我有一個小問題,我希望找到可以幫助的人。 我正在嘗試使用 ucontext 在 c 中開發一個線程庫,並且我已經為此開發了基本功能。 所以現在我的問題是我想考慮用戶用 return 而不是我的退出函數完成他的函數的情況。 是否可以知道線程上下文是否已完成並在用戶在其函數中使用 retutn 時獲取 ...
[英]Error reading returned value from passing struct pointer to pthread_exit() in C
我試圖通過pthread_exit()函數將指向結構lower_hyper_id的指針從線程傳遞到主線程,該指針將比較並輸出結構中的值。 但是,當我嘗試使用返回的值並將其強制轉換為結構時,我收到錯誤消息(分段錯誤)。 創建並返回結構的線程: 在主要方面: 我已經看過sta ...
[英]How to convert * to double/float with pthread, pthread_exit
我需要創建一個程序來計算遞歸(對於某些序列)。 當我使用int並清除一個遞歸時,它將計算不帶浮點數的值(例如fibonacci序列,該值僅返回中性數),它可以工作。 但是,當嘗試使用基於除法的序列(帶有浮點數)時,會顯示如下錯誤: 錯誤:無法轉換為浮動類型pthread_exit((v ...
[英]Trying to understand how pthread works in C
我正在嘗試在C中使用pthread比較兩個字符串。 這個想法是看完整的字符串2是否在字符串1中(例如,如果string1 = lkajdsgl和string2 = jd那么我將有一個匹配項)。 我不了解pthread如何以一般方式工作。 在這里,我創建我的pthreads,假設NUM_TH ...
[英]Close a thread based on a variable value from calling thread
我在C中使用posix線程。我的程序中有兩個線程,thread1和thread2。 線程1啟動線程2。 線程1維護一個變量var1,基於該變量必須安全退出線程2。 thread2調用了許多冗長的函數(其運行時間最多為5秒)。 在thread2中有許多使用malloc的內存分配。 ...
[英]pthread_exit(NULL); not working
這是我創建一些線程的代碼。 我想在同一時間創建500個線程,而不是更多。 很簡單,但是在創建32xxx線程后我的代碼失敗了。 然后我不明白為什么我在32751線程之后得到錯誤代碼11,因為,每個線程都結束了。 我可以理解,如果線程沒有退出,那么32751線程在同一台計算機上... ...
[英]Why does pthread_exit(0) hangs the program?
運行以下C代碼將導致程序掛起,並且不響應信號(包括CTRL-C)。 知道為什么嗎? 當其他線程已經創建並正在運行時,該行為是正常的,但是我想知道在使用pthread_exit(0)之前是否始終需要檢查該線程。 編輯:這是掛起的完整代碼。 但是,我正在使用glib(-lgli ...
[英]Posix pthread worker that is only running when needed
我有一個工作線程正在執行輪詢活動(它的目標是libcurl,但這不相關)。 應用程序中的許多操作都可以啟動工作線程,但是如果它已經在運行,則不應創建任何新線程。 來自應用程序的新請求僅與已經進行的任何其他輪詢結合在一起。 總而言之,當沒有任何事情要做時,單個工作線程退出。 代 ...
[英]Client hangs after pthread_exit() in server thread in C
我有一台服務器,可以處理多個客戶端。 連接到它的每個客戶端都在其自己的線程中得到服務。 現在,如果服務器端發生任何錯誤,我想通過調用pthread_exit退出該線程,並終止該線程正在服務的客戶端。 然而; 當我嘗試這樣做時,我的客戶就掛了。 同樣,這也會導致處於不同線程中的其他客戶端 ...
[英]how to save a thread stack before it exits?
我正在開發一個多線程項目,我需要在代碼的某個位置復制線程堆棧(我需要一個指向它的指針)。 因為退出該線程后,我將需要該指針(並且它的堆棧已釋放)。 如果我能以某種方式告訴pthread_exit()不釋放線程堆棧,它也可以完成工作! PS:這背后的原因是,當此線程實際上已死時,我想稍后 ...
[英]Why pthread_exit acts like pthread_join?
碼: 為什么這里的pthread_exit(NULL)就像pthread_join() ? 即為什么退出main而不破壞printHello線程並允許它繼續? ...
[英]will pthread_exit() closes the opened files too?
我已經在線程中打開一個文件,並使用pthread_exit()例程終止了該線程。 也會關閉打開的文件嗎? ...