【发布时间】:2012-07-05 20:25:21
【问题描述】:
我需要对备忘录中的文本进行数学计算。 [文件大小:~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,因为有效的多线程非常依赖于操作的数据。
-
如果你只有2000行,启动线程的开销可能比手头的任务要大。另外,为什么要 100 个线程?你有 100 个处理器吗?
-
@Kabamaru:如果你的 CPU 有 8 个逻辑处理器,你不会受益于超过 8 个线程。
-
文件有多大。多少个字符?
-
@Kabamaru 我相信我现在有了答案。瓶颈不在Q中的代码!
标签: multithreading delphi delphi-xe2