我的主类中有三个线程,如果它们同时运行,我怎样才能使迭代中每个线程的出现随机?例如,我有:
线程1
线程2
主题3
并且在第一次迭代中它可能看起来像:线程2,线程1,线程3,在第二次迭代中可能有不同的组合。
此外,在这种情况下,我的每个线程都有不同的结果,分配了枚举。 此外,每次执行这三个线程时,都有其他三个线程比较这些线程的结果并根据该结果执行其他执行。然后该过程再次开始。
答案 0 :(得分:0)
如果您有办法通知他们,您可以将它们存储在数组或列表中,并选择一个随机数来决定您想要的那个。
或者,您可以让每个帖子sleep()
持续一段时间。这应该导致足够的随机性,但可能不会依赖于生产代码,考虑到你不能保证它们会被唤醒。 (这可能是它们的99.999999999%,但是这一小部分弹出的方式比它应该的更多,并且总是当你负担不起时。)
请注意,最后一个可能最终会出现以下内容:
线程1
线程2
线程1
主题3
线程2
答案 1 :(得分:0)
如果您的任务不在同步方法或块中,则任务同时发生。除了强制线程等到另一个线程完成之外,绝对没有办法控制任务的完成顺序,这是非常低效的。
如果您的任务在同步方法或块中,那么首先没有理由进行多线程,因为同步块一次只能由一个线程执行。