我刚刚学习 Java 中的线程,我想按字母顺序对单词列表进行排序。我的程序读取 txt 文件中的单词并将它们放入字符串数组中。用户可以自己选择要使用多少个线程。我想将数组分割成均匀(尽可能)的块,线程可以自行排序。
所以我的问题是:
如何在线程之间尽可能均匀地分割 array.length ?我的大脑一片空白,我想不出一个聪明的方法来做到这一点。
例如:如果我有一个 array.length 为 22 和 4 个线程,在这种情况下如何给出线程; 6、6、5 和 5 块大小的数组?需要适用于给出的每个数字。
我尽力解释了,如果有不清楚的地方请询问!谢谢你!
让我以你的例子为例,因为它很容易解释。 4 个线程中有 22 个元素。
22 % 4 = 2。这给出了比其余线程多获取一个元素的线程数。
22 / 4 = 5。这给出了每个线程的最小元素数。
现在开始将数组分成 5 个元素,并将它们分别分配给一个线程,直到剩下 (22%4) 2 个线程。为它们分别分配剩余的 (5+1=6) 个元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)