欧美色视频免费_2018亚洲男人天堂_好骚综合在线_久久久久久久久国产_日韩精品久久久久久久九岛_国产成年人视频

推廣 熱搜: 廣場  Java  app  Word  營業  微信公眾號  北京代理記賬  商城  代理記賬  商標交易 

多線程post工具 多線程間怎么傳遞數據?

   2023-04-27 企業服務招財貓100
核心提示:多線程間怎么傳遞數據?多線程傳遞多個參數可以通過以下方法來實現typedefstruct{void*arg1void*arg2//加個semaphore}ARGvoidfunc(void*arg1,v

多線程間怎么傳遞數據?

多線程傳遞多個參數可以通過以下方法來實現typedefstruct{void*arg1void*arg2//加個semaphore}ARGvoidfunc(void*arg1,void*arg2){ARGaarg1arg2//初始化0pthread_create(amptid,routine,NULL,ampa)//wait}void*routine(void*arg){ARG*a(ARG*)argvoid*arg1a-gtarg1void*arg2a-gtarg2//post}參數表又稱形式參數表,它包含有任意多個(含0個,即沒有)參數說明項,當多于一個時其前后兩個參數說明項之間必須用逗號分開。每個參數說明項由一種已定義的數據類型和一個變量標識符組成,該變量標識符稱為該函數的形式參數,簡稱形參,形參前面給出的數據類型稱為該形參的類型。一個函數定義中的可以被省略,表明該函數為無參函數,若用void取代,則也表明是無參函數,若不為空,同時又不是保留字void,則稱為帶參函數。

線程池隊列大小設置?

一、ThreadPoolExecutor的重要參數

corePoolSize:核心線程數,核心線程會一直存活,及時沒有任務需要執行,當線程數小于核心線程數時,即使有線程中午休息,線程池也會優先創建新線程處理,設置allowCoreThreadTimeouttrue(默認false)時,核心線程會超時關閉

queueCapacity:任務隊列容量(阻塞隊列)

當核心線程數達到最大時,新任務會放在隊列中排隊等待執行

maxPoolSize:最大線程數

當線程數gtcorePoolSize,且任務隊列已滿時。線程池會創建新線程來處理任務

當線程數maxPoolSize,且任務隊列已滿時,線程池會拒絕處理任務而拋出異常

keepAliveTime:線程晚上時間

當線程空余時間達到keepAliveTime時,線程會退出,直到線程數量corePoolSize

如果allowCoreThreadTimeouttrue,則會直到線程數量0

allowCoreThreadTimeout:允許核心線程超時

rejectedExecutionHandler:任務拒絕處理器芯片

兩種情況會拒絕處理任務:

當線程數已經達到maxPoolSize,切隊列已滿,會拒絕新任務

當線程池被調用shutdown()后,會等待線程池里的任務執行完畢,再shutdown。如果在調用shutdown()和線程池真正shutdown之間提交任務,會拒絕新任務

線程池會調用rejectedExecutionHandler來處理這個任務。如果沒有設置默認是AbortPolicy,會拋出異常

ThreadPoolExecutor類有幾個內部實現類來處理這類情況:

AbortPolicy丟棄任務,拋運行時異常

CallerRunsPolicy執行任務

DiscardPolicy忽視,什么都不會發生

DiscardOldestPolicy從隊列中踢出最先進入隊列(最后一個執行)的任務

實現RejectedExecutionHandler接口,可自定義處理器

二、ThreadPoolExecutor執行順序

線程池按以下行為執行任務

(1)當線程數小于核心線程數時,創建線程。

(2)當線程數大于等于核心線程數,且任務隊列未滿時,將任務放入任務隊列。

(3)當線程數大于等于核心線程數,且任務隊列已滿

1)若線程數小于最大線程數,創建線程

2)若線程數等于最大線程數,拋出異常,拒絕任務

三、如何設置參數

默認值

corePoolSize1

_VALUE

_VALUE

keepAliveTime60s

allowCoreThreadTimeoutfalse

rejectedExecutionHandlerAbortPolicy()

如何來設置

需要根據幾個值來決定

tasks:每秒的任務數,假設為500~1000

taskcost:每個任務花費時間,假設為0.1s

responsetime:系統允許容忍的最大響應時間,假設為3s

做幾個計算

corePoolSize每秒需要多少個線程處理?

threadcounttasks/(1/taskcost)tasks*taskcout(500~1000)*0.150~100個線程。corePoolSize設置應該大于50

根據8020原則,如果80%的每秒任務數小于800,那么corePoolSize設置為80即可

queueCapacity(coreSizePool/taskcost)*responsetime

計算可得queueCapacity80/0.1*180。意思是隊列里的線程可以等待12s,超過了的需要新開線程來執行

切記不能設置為_VALUE,這樣隊列會很大,線程數只會保持在corePoolSize大小,當任務陡增時,不能新開線程來執行,響應時間會隨之陡增。

maxPoolSize(max(tasks)-queueCapacity)/(1/taskcost)

計算可得maxPoolSize(1000-80)/1092

(最大任務數-隊列容量)/每個線程每秒處理能力最大線程數

rejectedExecutionHandler:根據具體情況來決定,任務不重要可丟棄,任務重要則要利用一些緩沖機制來處理

keepAliveTime和allowCoreThreadTimeout采用默認通常能滿足

以上都是理想值,實際情況下要根據機器性能來決定。如果在未達到最大線程數的情況機器npuload已經滿了,則需要通過升級硬件和優化代碼,降低taskcost來處理。

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  冀ICP備2023006999號-8
 
主站蜘蛛池模板: 国产韩国精品一区二区三区 | 中文字幕亚洲电影 | 国产综合区| 精品伦精品一区二区三区视频 | 欧美午夜一区二区 | 欧州一区二区 | 福利视频一二三在线视频免费观看 | 欧美一区二区三区在线观看视频 | 亚洲一区在线免费 | 久久久久久免费精品一区二区三区 | 日韩欧美在线免费观看 | 久久99九九 | 国产精品视频专区 | 国产免费av网站 | 久久久精品在线 | 久久久久久久一区 | 欧美日韩一区不卡 | 亚色图 | 国产一区二区三区四区三区四 | 日韩午夜视频在线观看 | 免费黄色在线看 | 亚洲色图偷拍自拍 | www.天天操 | 中文字幕精品一区二区三区精品 | www.色网| 亚洲欧美日韩另类精品一区二区三区 | 国产精品视频播放 | 国内精品国产成人国产三级粉色 | 欧美激情视频一区二区三区在线播放 | 亚洲精品一二三 | 久久国产一区 | 九九久久国产 | 久久免费播放视频 | 成年国产| 欧美日韩国产一区二区三区 | 亚洲成人精品一区二区三区 | 久久av导航 | 在线亚洲一区 | 久久久国产精品一区二区三区 | 欧洲av免费 | 国产精品视频在线观看 |