【发布时间】:2011-02-14 01:02:45
【问题描述】:
我正在从 n 个服务器读取一个文件,我希望每个服务器都下载该文件的 1/n。我认为一些快速的整数数学会起作用,但它似乎并不总是有效:
threads = n
thread_id = 0:n-1
filesize (in bytes) = x
starting position = thread_id*(filesize/threads)
bytes to read = (filesize/threads)
有时对于正确的数字,例如一个 26 字节的文件被 9 个线程划分(我知道这很荒谬,但只是举例),它对我不利。肯定有更好的办法。有什么想法吗?
【问题讨论】:
-
26字节9线程,8线程要下载3字节,第9线程要下载2,你考虑这个吗?此外,整数运算中的 26/9 = 2.888 = 2。
标签: multithreading math integer-division