java线程随机数
老师布置的作业是用java编写程序能够输出一个从1-10的随机整数。要求是不能使用random()。只能使用线程和synchronizarion。请问这个怎么编写。我初步...
老师布置的作业是用java编写程序能够输出一个从1-10的随机整数。要求是不能使用random()。只能使用线程和synchronizarion。请问这个怎么编写。我初步的想法是写10个线程,每个线程输出一个数字。然后由于线程是随机执行的。第一个执行以后把其他的都中断。问题是不知道第一个执行的是哪个线程也就不知道如何中止。我这个想法正确么,如果不对该怎么做。如果对了,该怎样继续,谢谢
展开
1个回答
展开全部
提供个我的思路,个人觉得你的基本思路完全没有问题,就是可能不知道10个线程怎么处理,我个人建议是10个线程同时启动,然后另外写一个锁的类,用于锁线程,里面存放一个boolean型变量,10个线程的执行都依赖这把锁,并且全部判断这个变量的值,如果不符合就不输出,所以你只要保证同时只有一个线程能获取到锁并且结束完成一定会修改状态,这样应该就可以了
追问
怎样保证同时只有一个线程获得锁呢,我在main class里面创建了一个boolean的锁,但还是每个线程都输出了
追答
你在每个线程里面都用synchronizarion锁这个boolean锁就可以了,就像这样
public void run() {
synchronized (自己写的锁的对象(需要保证是同一个)) {
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询