操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    PID和TID有什么區別?

    標準答案是PID用于進程,而TID用于線程。 但是,我已經看到一些命令可以互換使用。 例如,htop有一列用于PID的列,其中顯示了同一進程的線程的PID(具有不同的值)。 那么,PID何時表示線程或進程?

    這很復雜:pid是進程標識符; tid是線程標識符。

    但是碰巧的是,內核并沒有真正區分它們:線程就像進程一樣,但是它們與同一組的其他實例共享某些東西(內存,fds ...)。

    病符星的方位怎么找_程序池的進程模型的標識_找不到進程標識符

    因此,tid實際上是內核(線程)中可調度對象的標識符,而pid是共享內存和fds(進程)的可調度對象組的標識符。

    但是讓事情變得更有趣的是,當一個進程只有一個線程(初始情況,在過去的好時光只有一個線程)時找不到進程標識符,pid和tid總是相同的。因此,任何與tid一起使用的功能都將自動與pid一起使用。

    程序池的進程模型的標識_找不到進程標識符_病符星的方位怎么找

    值得注意的是,許多與pid一起使用的函數/系統調用/命令行實用工具實際上都使用了tid。但是,如果影響是全過程的找不到進程標識符,您將根本不會注意到差異。

    實際上,Linux進程中的每個線程都是輕量級進程(LWP)。因此,人們可能將線程稱為進程。但是肯定會有區別。

    程序池的進程模型的標識_找不到進程標識符_病符星的方位怎么找

    進程中的每個線程都有不同的線程ID(TID),并且共享相同的進程ID(PID)。

    如果您正在使用庫函數,則這些函數將不使用這些TID,因為它們是內核/ OS級線程ID。

    病符星的方位怎么找_程序池的進程模型的標識_找不到進程標識符

    根據man ,僅用于添加其他答案:

    The ID by this call is not the same thing as a POSIX ID (i.e., the value by (3)).

    找不到進程標識符_病符星的方位怎么找_程序池的進程模型的標識

    因此,TID可能意味著兩種不同的含義!

    pid和tid相同,除了使用(根據的手冊頁)調用clone創建進程時。在這種情況下,您將獲得唯一的線程ID,但是屬于同一線程組的所有線程共享相同的進程ID。

    但是,我還記得(盡管找不到源)閱讀了從返回的值可能被緩存的情況。

    [更新]

    有關緩存pids的影響的討論,請參見此處的NOTES部分。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有