临界区与竞态条件

Posted 杀手不太冷!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了临界区与竞态条件相关的知识,希望对你有一定的参考价值。

临界区与竞态条件

一个程序运行多个线程本身是没有问题的

问题出在多个线程访问共享资源

多个线程读共享资源其实也没有问题

在多个线程对共享资源读写操作时发生指令交错,就会出现问题

一段代码内存在共享资源,并且多个线程可以对这部分共享资源进行读写操作,那么这段代码的区域就叫做临界区,如下:

static int counter=0;

static void increment()
//临界区
{
    counter++;
}
//临界区
static void decrement(){
	counter--;
}

竞态条件:多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件。

以上是关于临界区与竞态条件的主要内容,如果未能解决你的问题,请参考以下文章

:并发与竞态

java并发 day02 临界区和竞态条件synchronized线程安全 对象头 Monitor管程 wait notifypark&unpark ReentrantLock

java并发 day02 临界区和竞态条件synchronized线程安全 对象头 Monitor管程 wait notifypark&unpark ReentrantLock

java并发 day02 临界区和竞态条件synchronized线程安全 对象头 Monitor管程 wait notifypark&unpark ReentrantLock

linux并行与竞态

JUC并发编程 -- 避免临界区的竞态条件之synchronized 解决方案(同步代码块)