操作系统中的进程调度
我有一个问题
对于java而言
他的进程调度是抢占式的
它把进程的调度优化成了对线程的调度 我不理解的是它里面的源码里的一个汇编指令 cmpxchg 对于单核cpu的时候 它是不加lock的 我比较疑惑的地方在于 它如果在多线程的情况下去执行这条指令 只执行了cmp这一步 结果它的时间片到了,切换到了另一个线程,结果另一个线程对这个操作数修改了值,之后又切回了这个线程,那这种情况怎么办?#Java#
对于java而言
他的进程调度是抢占式的
它把进程的调度优化成了对线程的调度 我不理解的是它里面的源码里的一个汇编指令 cmpxchg 对于单核cpu的时候 它是不加lock的 我比较疑惑的地方在于 它如果在多线程的情况下去执行这条指令 只执行了cmp这一步 结果它的时间片到了,切换到了另一个线程,结果另一个线程对这个操作数修改了值,之后又切回了这个线程,那这种情况怎么办?#Java#