looker_good 2017-11-24 01:42 采纳率: 100%
浏览 840
已采纳

关于多线程的一点疑问

java多线程对同一个对象操作时需要加锁,但是计算机进程在cpu交叉执行,线程包含在进程里,线程也是交叉执行,也就是说,同一时刻cpu只会执行一个线程,那么对对象必然是唯一的操作,所以为什么会需要加锁呢??求解释!

  • 写回答

8条回答 默认 最新

  • doggy_coder 2017-11-24 01:50
    关注

    最重要得是不是所有操作都是原子操作,你看起来觉得只是一条语句,但是对应可能是多条指令,所以在执行这条语句的指令时,但还没执行完这条语句的所有指令时,随时可能被切换,所以用锁来保证在被切换后,锁没释放前,其它线程也不能执行这段代码

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?