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

  免費注冊 查看新帖 |

Chinaunix

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

[C++] 問個boost線程池分配任務的問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-09-28 08:54 |只看該作者 |倒序瀏覽
20可用積分
本帖最后由 2009從-1開始 于 2012-10-03 10:49 編輯

  1. class D
  2. {
  3. };

  4. class A
  5. {
  6.     work( D d);
  7. };

  8. class B
  9. {
  10.     A a;

  11.     // 代碼1
  12.     for ( int 1 = 0; i < 100; i++ )
  13.     {
  14.         D d;//d計算得到,有內(nèi)存的申請釋放
  15.         m_threadpool.schedule(boost::bind(&A::work,&a,d));
  16.     }

  17.     // 代碼2
  18.     vector<D> vd;
  19.     for( int i = 0; i < 100; i++ )
  20.     {
  21.         D d;//d計算得到,有內(nèi)存的申請釋放
  22.         vd.push_back(d);
  23.     }
  24.     for( int i = 0; i < 100; i++ )
  25.     {
  26.         m_threadpool.schedule(boost::bind(&A::work,&a,vd.at(i)));
  27.     }
  28. }
復制代碼
開100個線程,代碼1和2不同時執(zhí)行,測試得到的結(jié)論:
1、測試一次時,代碼1有性能問題,代碼2沒有
2、代碼2多次執(zhí)行時(循環(huán)),也有性能問題

疑問:
1、多線程開多少個合適?與服務器CPU有什么關系?
2、多線程schedule的開銷在哪?

好久沒來CU了,有問題就想起大家了^_^

修改了下上面的代碼的注釋“d根據(jù)全局的數(shù)據(jù)計算得到”,上次描敘的有點小問題

最佳答案

查看完整內(nèi)容

標準STL對多線程支持很成問題的,代碼2似乎存在競爭鎖的嫌疑代碼1,調(diào)試看看,是不是存在多線程下的偽共享問題同一CPU物理運算單元上,同一時間上,只能有一個線程運行的。線程不是越多越好的,線程過多,相互切換都會有很大消耗的

論壇徽章:
0
2 [報告]
發(fā)表于 2012-09-28 08:54 |只看該作者
本帖最后由 圍觀秀底線 于 2012-09-30 19:38 編輯

標準STL對多線程支持很成問題的,代碼2似乎存在競爭鎖的嫌疑
代碼1,調(diào)試看看,是不是存在多線程下的偽共享問題

同一CPU物理運算單元上,同一時間上,只能有一個線程運行的。線程不是越多越好的,線程過多,相互切換都會有很大消耗的

論壇徽章:
0
3 [報告]
發(fā)表于 2012-09-28 09:02 |只看該作者
1. 與cpu關系不太大,開多少線程實際壓力模擬測試下,說多少個沒意思
2.沒啥開銷

論壇徽章:
0
4 [報告]
發(fā)表于 2012-09-28 09:06 |只看該作者
先不說子線程的運行耗時,單單分配就有性能問題,這個是測試的結(jié)論。
我懷疑是分任務時有分配內(nèi)存,導致資源競爭?
newyorkumoney 發(fā)表于 2012-09-28 09:02
1. 與cpu關系不太大,開多少線程實際壓力模擬測試下,說多少個沒意思
2.沒啥開銷

論壇徽章:
0
5 [報告]
發(fā)表于 2012-09-30 18:49 |只看該作者

論壇徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16賽季CBA聯(lián)賽之青島
日期:2016-07-05 12:36:0515-16賽季CBA聯(lián)賽之廣東
日期:2016-06-29 11:45:542015亞冠之全北現(xiàn)代
日期:2015-07-22 08:09:472015年辭舊歲徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39獅子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技術圖書徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
6 [報告]
發(fā)表于 2012-09-30 20:20 |只看該作者
一般而言(只是“一般而言”),線程數(shù) = CPU數(shù) + 2;(多核CPU算多個CPU)

論壇徽章:
0
7 [報告]
發(fā)表于 2012-09-30 21:00 |只看該作者
本帖最后由 圍觀秀底線 于 2012-09-30 21:16 編輯
bruceteen 發(fā)表于 2012-09-30 20:20
一般而言(只是“一般而言”),線程數(shù) = CPU數(shù) + 2;(多核CPU算多個CPU)


Windows下的高效IO模式IOCP(IO完成端口),默認狀況下就是這個

具體開多少線程,沒有定語的,還要看具體情況的,例如OS平臺特性

論壇徽章:
0
8 [報告]
發(fā)表于 2012-10-03 10:46 |只看該作者
多個線程都需要申請和釋放內(nèi)存操作,這個會導致怎樣的競爭?回復 5# 圍觀秀底線


   

論壇徽章:
0
9 [報告]
發(fā)表于 2012-10-08 15:49 |只看該作者
這個很難有標準答案了,謝謝給意見的同學們
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP