真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux多線程命令 linux多線程程序設(shè)計

利用linux命令如何查進程中有多少線程

1。 使用top命令,具體用法是 top -H

創(chuàng)新互聯(lián)主要從事做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務靖遠,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

加上這個選項,top的每一行就不是顯示一個進程,而是一個線程。

2。 使用ps命令,具體用法是 ps -xH

這樣可以查看所有存在的線程,也可以使用grep作進一步的過濾。

3。 使用ps命令,具體用法是 ps -mq PID

這樣可以看到指定的進程產(chǎn)生的線程數(shù)目。

更進一步,其實一些系統(tǒng)監(jiān)控工具,在本質(zhì)上也是讀取的系統(tǒng)產(chǎn)生的文件罷了。比如說進程這個事情,

看看這個目錄吧,/proc/5000/ 這里面有你所有想要的。其實stat代表著當前的一些信息。

使用ps命令來查看進程的時候,進程狀態(tài)分別對應的含義如下:

D 不可中斷睡眠 (通常是在IO操作) 收到信號不喚醒和不可運行, 進程必須等待直到有中斷發(fā)生

R 正在運行或可運行(在運行隊列排隊中)

S 可中斷睡眠 (休眠中, 受阻, 在等待某個條件的形成或接受到信號)

T 已停止的 進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運行

W 正在換頁(2.6.內(nèi)核之前有效)

X 死進程 (未開啟)

Z 僵尸進程 進程已終止, 但進程描述符存在, 直到父進程調(diào)用wait4()系統(tǒng)調(diào)用后釋放BSD風格的

高優(yōu)先級(not nice to other users)

N 低優(yōu)先級(nice to other users)

L 頁面鎖定在內(nèi)存(實時和定制的IO)

s 一個信息頭

l 多線程(使用 CLONE_THREAD,像NPTL的pthreads的那樣)

+ 在前臺進程組

在Linux系統(tǒng)中使用Shell實現(xiàn)多線程運行任務(多任務并發(fā)執(zhí)行) 2022-05-30

最近,有一批任務需要把兩批的fastq合并到一起并壓縮成一個fastq文件才能繼續(xù)往下做,由于存儲空間有限又不能直接全部跑上,只能按樣本逐個分批跑。眾所周知,一般fastq是成對存在的,所需要對read1和read2分別合并一次,然而這次任務的fastq文件比較大,合并然后壓縮一次需要1天左右,那對于一組fastq就要2-3天,這也太耗時間了,所以我在想能不能read1和read2 同時跑上,這就可以節(jié)省一半的時間了。

平時也能遇到很多類似的任務,特別是在進程數(shù)有限的情況下,如果這些小任務單獨占用一個進程,而任務很多就很耗時間,如果能在一個進程下實現(xiàn)多個線程并行執(zhí)行,就能大大提高運行效率。關(guān)于進程和線程的知識可以參考知乎的這篇文章【 Shell“ 多線程”,提高工作效率 】,整理的也比較有條理,能比較容易讀懂。

當然,某些博主也寫過類似的文章,例如這篇【 shell后臺限制多并發(fā)控制后臺任務強度進行文件拷貝 】但是實在是太高深莫測了,看不懂,一時半會兒也學不會。本文將示例Shell實現(xiàn)多線程的簡單版本,其實不用太復雜。

其實只需要兩個步驟, 第一步是給需要并行運行的命令行在結(jié)尾加上"",代表放到后臺運行,第二步是在在所有并行任務的后面加上一句“wait”,意思是等所有通過“”放到后臺運行的任務跑完后再繼續(xù)執(zhí)行后面的任務 ,這些就能實現(xiàn)所有帶有“”的行并行執(zhí)行了。

看完腳本是不是覺得很簡單?

上面的腳本適合并行任務少的,可以手動加和wait,但是如果有幾十個甚至上百個的小任務就比較麻煩了。但不用擔心,可以寫個循環(huán),批量運行。

循環(huán)的結(jié)果也是跟上面類似的,只是多了個循環(huán)結(jié)構(gòu)。

如果需要執(zhí)行的任務只有一行,可以把大括號去掉。

關(guān)于for和while的循環(huán)可以查看之前的文章【 Shell常用循環(huán)示例(for和while批量處理)2022-05-25 】

需要注意的是多線程并行還是需要有限制的,畢竟都是在一個進程里運行,如果線程太多了會卡頓的,建議控制在100個以內(nèi),當然還有畢竟高級和復雜的方法可以實現(xiàn)限制。因為上面的腳本已經(jīng)夠我用了,沒繼續(xù)往下學,以后可以再補充。

Linux多線程編程

編譯時要用到pthread 庫:gcc -lpthread

錯誤碼位置:/usr/include/asm-generic/errno.h

gcc pthread_create.c -lpthread

思考:主子線程交替打印奇數(shù)偶數(shù)。

思考:證明線程可以自己取消自己。

思考:證明SIGKILL和SIGSTOP 是無法阻塞的。

/usr/include/bits/pthreadtypes.h中查看pthread_mutex_t

思考:用多線程將一個文件1.c拷貝3個副本,11.c,12.c,13.c

思考:多個生產(chǎn)者和消費者

思考:將互斥量等初始化使用pthread_once實現(xiàn)。

思考:設(shè)置線程的分離屬性,然后在新縣城中獲取自己的分離屬性。


網(wǎng)頁題目:linux多線程命令 linux多線程程序設(shè)計
瀏覽路徑:http://weahome.cn/article/ddcgssi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部