亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4443 | 回復(fù): 9
打印 上一主題 下一主題

[Linux] 用戶態(tài)進(jìn)程中多線程并發(fā)的疑問? [復(fù)制鏈接]

論壇徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-02-08 19:28 |只看該作者 |倒序瀏覽
本帖最后由 鎮(zhèn)水鐵牛 于 2015-02-08 19:30 編輯

        場景:glibc的線程庫,一個進(jìn)程內(nèi)起多個線程,談?wù)勎业睦斫夂涂捶ǎ?br />         該進(jìn)程有獨立的地址空間,可以被內(nèi)核調(diào)度,但它內(nèi)部的多線程是無法真正意義上的并發(fā)執(zhí)行,即無法同一時刻在多個cpu上并行,這些線程頂多是在進(jìn)程的時間片內(nèi)進(jìn)行調(diào)度執(zhí)行,其實內(nèi)核根本不感知這些,畢竟這些線程只是共享了該進(jìn)程的一些數(shù)據(jù)結(jié)構(gòu)而已,理解是否正確?
        實際場景:進(jìn)程A中有8個線程,線程中均執(zhí)行while (true) { i ++}死循環(huán),cpu的使用率大于100%,這個值是進(jìn)行進(jìn)程時間片相關(guān)的virtual runtime后加權(quán)算出來的吧?

求職 : 機器學(xué)習(xí)
論壇徽章:
79
2015年亞洲杯紀(jì)念徽章
日期:2015-05-06 19:18:572015七夕節(jié)徽章
日期:2015-08-21 11:06:172015亞冠之阿爾納斯?fàn)?日期:2015-09-07 09:30:232015亞冠之薩濟拖拉機
日期:2015-10-21 08:26:3915-16賽季CBA聯(lián)賽之浙江
日期:2015-12-30 09:59:1815-16賽季CBA聯(lián)賽之浙江
日期:2016-01-10 12:35:21技術(shù)圖書徽章
日期:2016-01-15 11:07:2015-16賽季CBA聯(lián)賽之新疆
日期:2016-02-24 13:46:0215-16賽季CBA聯(lián)賽之吉林
日期:2016-06-26 01:07:172015-2016NBA季后賽紀(jì)念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16賽季CBA聯(lián)賽之浙江
日期:2017-07-18 13:41:54
2 [報告]
發(fā)表于 2015-02-08 23:01 |只看該作者
樓主請教一個問題,進(jìn)程地址空間獨立,這個我明白,我是想問,為啥多線程不能在不同的CPU上并發(fā)執(zhí)行,是因為不同的CPU不能共享地址空間嗎?
如果多CPU不能共享一個地址空間,我想問一下,CPU 的多核處理器是否能夠共享一個地址空間?
多線程是否能夠在多核上并發(fā)運行,如果多核可以,多CPU不可以,那么多核與多CPU的差別在哪里?

論壇徽章:
4
雙子座
日期:2014-08-28 10:08:002015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:58:112015年亞洲杯之阿聯(lián)酋
日期:2015-03-13 03:25:15
3 [報告]
發(fā)表于 2015-02-09 13:31 |只看該作者
一個進(jìn)程內(nèi)的線程無法真正意義上的并行執(zhí)行,這個是錯誤的吧,我認(rèn)為線程其實就是輕量級的進(jìn)程,空間也是共享+COW的,所以完全是可以并行的,不然你寫代碼的時候,進(jìn)程內(nèi)的多線程豈不是就不需要加鎖了?

至于一些內(nèi)核資源,臨界區(qū),我覺得這個是無法并行的

論壇徽章:
6
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:002015亞冠之鹿島鹿角
日期:2015-08-05 16:51:182015亞冠之全北現(xiàn)代
日期:2015-08-07 17:14:392015亞冠之武里南聯(lián)
日期:2015-08-11 15:33:03數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-02-02 06:20:00
4 [報告]
發(fā)表于 2015-02-09 15:06 |只看該作者
線程分為用戶態(tài)線程和內(nèi)核態(tài)線程,它們的對應(yīng)關(guān)系有三種模型 http://blog.csdn.net/baidu_24256693/article/details/43446763[/url]

論壇徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
5 [報告]
發(fā)表于 2015-02-09 23:00 |只看該作者
回復(fù) 2# zsszss0000
樓主請教一個問題,進(jìn)程地址空間獨立,這個我明白,我是想問,為啥多線程不能在不同的CPU上并發(fā)執(zhí)行,是因為不同的CPU不能共享地址空間嗎?
如果多CPU不能共享一個地址空間,我想問一下,CPU 的多核處理器是否能夠共享一個地址空間?
多線程是否能夠在多核上并發(fā)運行,如果多核可以,多CPU不可以,那么多核與多CPU的差別在哪里?
[回復(fù)]首先改正下我的說法,我說的多cpu不是所謂的多路概念,就是普通的SMP。
多核共享地址空間,用戶態(tài)線程理論上是可以并發(fā)的,我的疑問是有沒有必要進(jìn)行真正意義上的并發(fā),這樣其實是提高了用戶態(tài)線程被調(diào)度的機率,不過也可以理解,內(nèi)核本來就是為用戶提供服務(wù)的。
   

論壇徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
6 [報告]
發(fā)表于 2015-02-09 23:05 |只看該作者
回復(fù) 3# weishuo1999

一個進(jìn)程內(nèi)的線程無法真正意義上的并行執(zhí)行,這個是錯誤的吧,我認(rèn)為線程其實就是輕量級的進(jìn)程,空間也是共享+COW的,所以完全是可以并行的,不然你寫代碼的時候,進(jìn)程內(nèi)的多線程豈不是就不需要加鎖了?
    即使沒有真正意義上的并發(fā),訪問某些共享資源也需要鎖保護(hù)吧,例如:thread_a剛正準(zhǔn)備刪除鏈表中某元素時被調(diào)度,thread_b剛好被調(diào)度去訪問該鏈表。風(fēng)險就來了。

   

論壇徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
7 [報告]
發(fā)表于 2015-02-09 23:07 |只看該作者
回復(fù) 4# lxy572535121

用戶級線程是一種"多對一"的線程映射。聽起來很有道理,但是好像還真不是那樣的哦,下面的測試可以證明。
我做的測試如下:一個進(jìn)程中起4個線程,每個線程就是while (true) { i++ ;},實際上上該進(jìn)程消耗的cpu資源為400%,top中4個核心的cpu每個核心的使用率都是100%。
   

論壇徽章:
6
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:002015亞冠之鹿島鹿角
日期:2015-08-05 16:51:182015亞冠之全北現(xiàn)代
日期:2015-08-07 17:14:392015亞冠之武里南聯(lián)
日期:2015-08-11 15:33:03數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-02-02 06:20:00
8 [報告]
發(fā)表于 2015-02-10 14:54 |只看該作者
鎮(zhèn)水鐵牛 發(fā)表于 2015-02-09 23:07
回復(fù) 4# lxy572535121

用戶級線程是一種"多對一"的線程映射。聽起來很有道理,但是好像還真不是那樣的哦 ...

你說的是對的,我在ubuntu12.04上測試過

但博客中說的是有這三中模型,而顯然你的系統(tǒng)用的是第二種模型即用戶級線程與內(nèi)核級線程一對一的情況,而不是多對一的模型

論壇徽章:
2
寅虎
日期:2014-11-25 21:47:342015小元宵徽章
日期:2015-03-06 15:58:18
9 [報告]
發(fā)表于 2015-02-10 21:19 |只看該作者
回復(fù) 8# lxy572535121
確實是那樣的。

   

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
10 [報告]
發(fā)表于 2015-02-12 16:43 |只看該作者
glibc在linux上就是一對一啊   solaris才有多對一的

glibc的線程直接對應(yīng)內(nèi)核的輕量級進(jìn)程    一個進(jìn)程的兩個線程可以同時在兩個cpu上*并行*執(zhí)行
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP