每个布尔值为真组合新线程



我对实现这一目标的更好方法有疑问:

我有一个包含5个布尔变量的类(例如:11111,是一个组合)。现在,问题是我将为每个true组合启动一个新线程,这意味着如果我有11000,我想为11000启动一个线程,为10000启动另一个线程,为01000启动最后一个线程。

我必须知道所有输入组合的值。最明显和最低效的方法是比较所有32种(在本例中)组合(00000,00001等),并仅在其与实际值(11000)的and为!= 0时开始,这将是我之前提到的情况(11000,10000和01000)。

在这种情况下,我每次都要做32次比较。问题是,如果我有6个布尔值,现在我必须做64个,以此类推。

任何人都可以想到一个更好的策略来"捕获"。每一个组合?

我认为唯一更快的方法是通过预先计算。

因此,应该使用String[][] arr;for (String a : arr[5]) {/* thread creation etc */}

其中'5'是'00101'。

也可以帮助:Integer.toBinaryString(5)(int) Long.parseLong("00101", 2)

相关内容

最新更新