解決執行緒的記憶體洩露的辦法

2021-06-28 17:41:36 字數 576 閱讀 5915

執行緒建立後,沒有呼叫pthread_join 或 pthread_detach會導致記憶體洩漏。

解決方法有以下幾種:

pthread_detach函式

pthread_detach(pthread_self()); 

第二種:在建立執行緒的設定pthread_create_detached屬性

pthread_attr_t attr;  

pthread_t thread;  

pthread_attr_init (&attr);  

pthread_attr_setdetachstate (&attr, pthread_create_detached);  

pthread_create (&thread, &attr, &thread_function, null);  

pthread_attr_destroy (&attr); 

第三種:建立執行緒後用pthread_join()一直等待子執行緒結束

pthread_join(thread, null);

主要在主線程中使用,且主要用於固定分配的執行緒中。

javascript記憶體洩露解決辦法

避免在區域性作用域 函式體 裡邊建立全域性變數。在資料結構中儲存的dom節點,當不再需要這些dom引用時,記得及時清空 置為null 發請求獲取資料,可以把需要的資料儲存在乙個變數裡,避免之後需要的時候每次都讀取。建議 var config res.data.data.config 避免之後每次都讀...

解決libcurl記憶體洩露的問題

情景是乙個程式一直執行post,通過http協議上傳資料。先curl easy init 之後再curl easy perform curl 最後 curl easy cleanup curl 但是這種方法是存在記憶體洩露的。參見 示例 include include curl curl.h int...

執行緒可能導致記憶體洩露的情況

繼承thread的執行緒,在交給jdk1.4並發包的執行緒池執行完畢後並沒有被釋放資源,而且也沒被再利用,而是白白佔著記憶體,導致記憶體洩露。預設的thread本身初始化在1.4是將自己加入了乙個threadgroup,如果你沒有呼叫它的start方法,jvm不會在該執行緒結束後將這個thread從...