linux的多執行緒,其實就是clone系統呼叫的實現的(共享檔案等)
首先看個具體的例子:
[cpp]view plain
copy
#include
#include
#include
#include
#include
#include
#include
void
*print_message_function(
void
*ptr );
intmain()
return
0;
}
void
*print_message_function(
void
*ptr )
return
0;
}
此時一共有三個程序在跑(相對於kernel來說,只有程序的概念)
一般情況是,乙個程序在/proc 目錄下就對應乙個,以該程序id號名字的
檔案目錄,該目錄下儲存著該程序的所有資訊。
但是對應,所謂的多執行緒,它的目錄結構該會這麼樣呢?
假如該程式名為:thread
$top -t | grep thread
pid tid pr cpu% s vss rss pcy uid thread proc
31694 31694 0 0% s 3008k 416k root thread system/bin/thread
31694 31695 0 0% s 3008k 416k root thread system/bin/thread
31694 31696 0 0% s 3008k 416k root thread system/bin/thread
可知他們對應於乙個程序id號,而在此目錄下,分別在有其他三個執行緒目錄資訊:
proc/31694/task # ls
31694
31695
31696
linux多執行緒在 proc目錄的結構
linux的多執行緒,其實就是clone系統呼叫的實現的 共享檔案等 首先看個具體的例子 include include include include include include include void print message function void ptr int main ret...
PROC的多執行緒
在main中進行context的初始化 include include include include include include include typedef unsigned winapi pbeginthreadex threadfunc lpvoid lpthreadparameter...
pro c初學2 簡單多執行緒例子
name proc mul.pc 預編譯條件 mode oracle parse full 利用多執行緒,更新表中記錄 每個執行緒擁有單獨的上下文環境 表結構 create table accounts account number 36 balance 36,2 include include i...