日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux强行退出线程,Linux 多线程编程--线程退出

發布時間:2023/12/31 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux强行退出线程,Linux 多线程编程--线程退出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天分析項目中進程中虛存一直增長問題,運行10個小時虛存漲到121G ,RSS占用為16G 非常恐怖。

順便查了下Linux單進程能創建線程的上限,以及相關內容。內存32G 64bit系統信息如下:

Linux線程使用方式是主進程依據請求的多少動態創建和退出線程。通過pmap -x pid查看進程內個部分內存分配情況:

發現大量如下占用:

通過查詢可知[anon]為未實際分配的內存,即虛存;通過如下命令計算出一共有11946個,每個對應10M總大小為 119460≈119G

1 cat process_info.txt |grep 10240|wc -l

好到此大概定位到,是這個部分虛存占用過多;

查看系統進程虛存限制:

從倒數第二項可知,系統對進程虛存無限制。棧大小為10M 剛好和[anon]每一項的大小相等,現在懷疑是線程創建后未釋放內存

返回去查看代碼,發現每個工作線程都調用了pthread_exit了,后面再進一步分析發現鏈接線程中在調用pthread_exit之前未調用pthread_detach,

導致線程雖然調用了pthread_exit,但是系統并不會真正釋放線程所占資源。

總結

兩種解決方式:

1.創建線程設置線程屬性為

1 pthread_attr_init(&attr);

2 pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

2.在線程函數第一行調用

1 pthread_detach(pthread_self());

順便查看了下系統中如下信息:

查看系統進程和線程數上限:

進程上限為:32768

進程內的線程上限為:514960 ?計算方式為512G/10M = 512*1024M/10M = 52428.8 和系統顯示的差距比較大,這個原因不明。。等有時間在進一步查證。。

原文:http://www.cnblogs.com/ibyte/p/5901381.html

總結

以上是生活随笔為你收集整理的linux强行退出线程,Linux 多线程编程--线程退出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。