簡體   English   中英

BOOST線程:線程還是進程?

[英]BOOST threads: threads or processes?

BOOST線程(版本1.49左右)是真正的線程還是單獨的進程?

當我運行一個預編譯版本的對接工具時,它看起來像是使用top的幾個進程(具有不同的進程ID和100%的CPU使用率),但是當我自己編譯它時(使用BOOST版本1.60),它們看起來像一個進程(使用單個進程ID和800%的CPU使用率)。

它不應該影響性能,如果這是你擔心的。 Linux已經在提供了很久獨立進程的形式,多線程。 它們像Copy-on-Write一樣共享內存,但沒有復制。 當由於使用更新的Linux調用而知道線程應該被組合在一起時,Top可以以不同的方式組織它,但是“真正的”線程仍然單獨的進程(運行top -H以在內核看到它們時查看線程)。 它們是獨立安排的,並且在內核的眼中除了一些重疊的內存頁面之外沒有任何共同之處(在初始化內存頁面之后,內核不知道之后,它並不真正關心)。

所以是的,舊版本的boost可能會使用單獨的“進程”而不是“線程”,但無論如何這都是語義。 引擎蓋下沒有什么不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM