public class MultiThreadingRandom {
public static void main(String[] args) throws InterruptedException {
MultiThreadingRandom multiThreadingRandom = new MultiThreadingRandom();
ExecutorService executorService = Executors.newFixedThreadPool(2);
geneRan r1= new geneRan();
geneRan r2= new geneRan();
executorService.submit(r1);
executorService.submit(r2);
executorService.shutdown();
}
}
class geneRan implements Runnable{
int rand_int1=0;
@Override
public void run() {
// TODO Implement this method
Random rand = new Random();
rand_int1 = rand.nextInt(1000);
System.out.println(rand_int1);
// System.out.println(ai.getAndIncrement());
}
}
该程序有时会给出 2 个不同的输出,但有时会给出相同的输出。
实际上,我对这两个线程使用了 2 个不同的对象,所以为什么它在某些情况下给出相同的结果。
无论如何,我只传递 2 个不同的对象及其线程安全代码。那么我如何才能确保在任何情况下生成 2 个不同的随机数。
饮歌长啸
繁花如伊
相关分类