我需要爲備忘錄中的文本進行數學計算。 [文件大小:〜2mb]劃分工作,將任務分配給線程數組
一個適合的例子是我需要解碼的編碼文本。
我將備忘文本傳遞給一個字符串以解碼它。 我想它會更快地運行我的解碼函數使用線程。 但一些谷歌搜索後,我沒有找到一個很好的例子符合我的目的。
實例功能:
function entr_base_N(my_text:String):String;
var
ts_hamil64:Integer;
begin
For ts_hamil64 := 1 to Length(my_text) do
begin
Result:= Result + Chr(Ord(my_text[ts_hamil64])+10)
end;
end;
.....
.....
Memo1.Text:=entr_base_N(Memo1.Text)
我想破工作切成小塊,平分的工作,可以說3..8線程和分配我的解碼功能,這些線程。你能指導我嗎?
處理文本文件的當前時間:約35秒。 謝謝你的熱心幫助。
@Kabamaru請,因爲有效的多線程是非常依賴於數據的操作上。 – 2012-07-05 20:30:45
如果您只有2000行,則啓動線程的開銷可能會大於當前的任務。另外,爲什麼100線程?你有100個處理器嗎? – 2012-07-05 20:44:40
@Kabamaru:如果你的CPU有8個邏輯處理器,你將不會受益於比8多的線程。 – 2012-07-05 20:52:03