importjava.util.ArrayList;importjava.util.List;publicclassMain{//ThreadLocalthreadLocal=newThreadLocal();inti;publicvoidincrement(){i++;}publicstaticvoidmain(String[]args){Mainmain=newMain();Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){for(inti=0;i
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
不是线程安全是一定的,使用30,300个线程试试就知道了,让你产生安全的错觉在System.out.println是一个耗时的同步方法,就是它在很大程度上掩盖了i++的可见性和原子性的问题。使用AtomicInteger或synchronized吧
缥缈止盈
TA贡献2041条经验 获得超4个赞
开始以为是publicvoidprintln(intx){synchronized(this){print(x);newLine();}}后来发现我错了方法本身的synchronized和被调用的方法的synchronized确实是线程不安全的跑300的结果2999915
添加回答
举报
0/150
提交
取消