是否有强制线程上下文切换的方法,尤其是在一些像++这样的操作中



我想知道有什么方法可以强制线程上下文切换吗?睡觉,屈服?有推荐的方法吗?需要做一些测试。特别是,我们可以在++操作中强制切换上下文吗?

您可以尝试替换

a++;

带有

int tmp = a;
Thread.sleep(1);
a = tmp + 1;

Thread.yield()并不一定能保证会发生切换(至少在实践中,如果当时没有任何东西等待运行,这就是noop)。Thread.sleep()几乎可以保证这一点,但没有办法在++操作中导致这种情况发生,因为没有办法覆盖默认实现。你到底想让什么发生?仅仅在之前或之后进行切换就足够了吗?你能用你最喜欢的IDE设置一个"手表"来模仿你想要做的事情吗?

相关内容

最新更新