cost 195 ms
如何防止pthreads中的memory泄露?

[英]How to prevent memory leaks in pthreads?

如何防止 pthread 中的 memory 泄漏? 我正在運行一個服務器客戶端程序,其中服務器必須執行 pthread 程序並將結果發送給客戶端。 客戶端不斷地請求命令,直到停止。 服務器提供的結果僅在第一次迭代中為真,但在第二次迭代中提供的結果不正確。 我嘗試使用 pthread_join 和 ...

c 代碼中的“(void *)2”是什么意思?

[英]what's the meaning of "(void *)2" in c code?

我最近讀了一本關於如何在 unix 環境中編寫代碼的書。有一個示例代碼讓我很困惑。 示例代碼: 如何找出“(void *)1”或“(void *)2”? 可以將類型“void *”轉換為“long”嗎? 在我看來,“(void *)1”告訴我 1 是一個地址,但是當我使用 deref 來獲取存儲在 ...

為什么我將 retval (void *) 傳遞給 pthread_exit() 的一種方法會產生意想不到的結果?

[英]Why does one of my ways of passing retval (void *) to pthread_exit() give unexpected results?

今天是我使用線程的第一天。 我很難理解為什么我無法通過以下兩種方式傳遞 retval(類型:void *)(即,只有一種方式會給出預期的結果,如下所示)。 我將提供我的代碼的簡化版本: 當我在我的 Linux 終端上編譯上述源代碼時: 然后執行: 我得到以下輸出: 但是,如果我在上 ...

pthread_exit function 的屬性:哪一個是對的?

[英]Properties of pthread_exit function : which one is right?

在 CSAPP 書第 12.3 節中,他們說.. 線程通過調用pthread_exit function顯式終止。 如果主線程調用pthread_exit ,它會等待所有其他對等線程終止,然后終止主線程和整個進程,返回值為 thread_return。 但是在pthread_exit的手冊頁中: ...

在分段錯誤處理程序中調用 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() 拋出警告:從不同大小的 integer 轉換為指針 [-Wint-to-pointer-cast] 警告

[英]pthread_exit() throws warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] warning

我一直在學習pthread庫,並創建了一個簡單的代碼來將兩個數字相乘,但是我無法擺脫這個警告。 附言。 代碼工作正常。 這是警告: 任何見解將不勝感激。 ...

pthread_join 后局部變量值不正確

[英]Incorrect local variable value after pthread_join

我試圖通過將數組拆分為大小為 10 的段來使用 pthread 庫總結 1000 個元素的整數數組(其中每個元素為 1)。因此,有效地使用了 100 個線程來執行此操作。 此並行操作的結果符合預期 (1000)。 但有趣的是,在我第一次調用pthread_join()之后,我在創建線程之前計算的順序 ...

用 return 退出線程

[英]Exit thread with return

我有一個小問題,我希望找到可以幫助的人。 我正在嘗試使用 ucontext 在 c 中開發一個線程庫,並且我已經為此開發了基本功能。 所以現在我的問題是我想考慮用戶用 return 而不是我的退出函數完成他的函數的情況。 是否可以知道線程上下文是否已完成並在用戶在其函數中使用 retutn 時獲取 ...

通過將結構指針傳遞到C中的pthread_exit()讀取返回的值時出錯

[英]Error reading returned value from passing struct pointer to pthread_exit() in C

我試圖通過pthread_exit()函數將指向結構lower_hyper_id的指針從線程傳遞到主線程,該指針將比較並輸出結構中的值。 但是,當我嘗試使用返回的值並將其強制轉換為結構時,我收到錯誤消息(分段錯誤)。 創建並返回結構的線程: 在主要方面: 我已經看過sta ...

如何使用pthread,pthread_exit將*轉換為double / float

[英]How to convert * to double/float with pthread, pthread_exit

我需要創建一個程序來計算遞歸(對於某些序列)。 當我使用int並清除一個遞歸時,它將計算不帶浮點數的值(例如fibonacci序列,該值僅返回中性數),它可以工作。 但是,當嘗試使用基於除法的序列(帶有浮點數)時,會顯示如下錯誤: 錯誤:無法轉換為浮動類型pthread_exit((v ...

試圖了解pthread如何在C中工作

[英]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); 不工作

[英]pthread_exit(NULL); not working

這是我創建一些線程的代碼。 我想在同一時間創建500個線程,而不是更多。 很簡單,但是在創建32xxx線程后我的代碼失敗了。 然后我不明白為什么我在32751線程之后得到錯誤代碼11,因為,每個線程都結束了。 我可以理解,如果線程沒有退出,那么32751線程在同一台計算機上... ...

為什么pthread_exit(0)掛起程序?

[英]Why does pthread_exit(0) hangs the program?

運行以下C代碼將導致程序掛起,並且不響應信號(包括CTRL-C)。 知道為什么嗎? 當其他線程已經創建並正在運行時,該行為是正常的,但是我想知道在使用pthread_exit(0)之前是否始終需要檢查該線程。 編輯:這是掛起的完整代碼。 但是,我正在使用glib(-lgli ...

僅在需要時運行的Posix pthread worker

[英]Posix pthread worker that is only running when needed

我有一個工作線程正在執行輪詢活動(它的目標是libcurl,但這不相關)。 應用程序中的許多操作都可以啟動工作線程,但是如果它已經在運行,則不應創建任何新線程。 來自應用程序的新請求僅與已經進行的任何其他輪詢結合在一起。 總而言之,當沒有任何事情要做時,單個工作線程退出。 代 ...

客戶端在C中的服務器線程中的pthread_exit()之后掛起

[英]Client hangs after pthread_exit() in server thread in C

我有一台服務器,可以處理多個客戶端。 連接到它的每個客戶端都在其自己的線程中得到服務。 現在,如果服務器端發生任何錯誤,我想通過調用pthread_exit退出該線程,並終止該線程正在服務的客戶端。 然而; 當我嘗試這樣做時,我的客戶就掛了。 同樣,這也會導致處於不同線程中的其他客戶端 ...

如何在退出之前保存線程堆棧?

[英]how to save a thread stack before it exits?

我正在開發一個多線程項目,我需要在代碼的某個位置復制線程堆棧(我需要一個指向它的指針)。 因為退出該線程后,我將需要該指針(並且它的堆棧已釋放)。 如果我能以某種方式告訴pthread_exit()不釋放線程堆棧,它也可以完成工作! PS:這背后的原因是,當此線程實際上已死時,我想稍后 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM