Master Worker工具使用文件

2021-09-29 01:25:22 字數 2143 閱讀 8147

本案例測試master-worker併發設計模式,網上關於該模式,都大差不差,本案例使用執行緒池的方式,重新實現,並進行測試對比。筆者希望進行優化,並作為工具使用,技術水平有限,請多多指教,提出不同意見,共同進步。

建議clone**,學習

git倉庫位址

測試threadmap result:216474736

測試executorservice result:216474736

stopwatch '': running time (millis) = 652

-----------------------------------------

ms % task name

-----------------------------------------

00432 066% 測試threadmap

00220 034% 測試executorservice

smileworkerhandler

實現smileworkerhandler類,為每個任務寫處理方法

public inte***ce smileworkerhandler

}

smilemaster

該類任務主要用於任務分配,提供多種構造,執行自定義執行緒池和執行緒工廠

/**

* @param worker worker程序邏輯

* @param countworker worker程序數量

*/public smilemaster(smileworker worker, int countworker)

/*** @param worker worker程序邏輯

* @param countworker worker程序數量

* @param threadfactory 自定義執行緒工廠

*/public smilemaster(smileworker worker, int countworker, threadfactory threadfactory)

/*** @param worker worker程序邏輯

* @param executor 執行緒池

* 使用執行緒池來維護工作佇列

*/public smilemaster(smileworker worker, int countworker, executorservice executor)

/**

* @package: flyer.worker.core

* @description: 測試版本

* @author: liuxin

* @date: 2017/9/14 下午5:15

*/public class smilemastertest

public static integer testthreadmap(int countworker,int counttask)

}), countworker);

//提交100個子任務

for (int i = 0; i < counttask; i++)

smilemaster.execute();

mapresultmap = smilemaster.getresultmap();

int re = 0;

for (map.entryentry : resultmap.entryset())

return re;

}public static integer testexecutorservice(int countworker,int counttask)

}), countworker, executorservice2);

for (int i = 0; i < counttask; i++)

smilemaster1.executepool();

int re1 = 0;

string key = entry.getkey();

re1 += o;

}return re1;

}}

iPhone Instruments工具使用

本文摘自 xcode 視窗並顯示出問題的 這是非常棒的功能。在本例中,第一次 nsstring 分配的時候出現了洩露,你需要做一些處理。這是個非常簡單的例子,但找到為什麼會發生洩露則要麻煩些。讓我們仔細看一下例子。在 viewdidload 當中,我們為字串分配到了記憶體,如下所示 mmyleaky...

併發模式(二)Master Worker模式

master worker模式是一種使用多執行緒進行資料處理的結構。多個worker程序協作處理使用者請求,master程序負責維護worker程序,並整合最終處理結果。master worker模式是常用的並行模式之一。系統有兩類程序協作工作 master程序和worker程序。master程序負...

併發程式設計之Master Worker模式

master worker模式是常用的併發模式,核心是master和worker兩個程序,master接收和分配任務,各個worker執行任務並返回結果,由master來歸納和總結。好處是能將大任務分解為若干個小任務,提高系統的吞吐量。示例 public class master 5.接收任務 pu...