多线程系列Race Condition的产生和解决
Posted 飞翔的鲲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程系列Race Condition的产生和解决相关的知识,希望对你有一定的参考价值。
DATE: 2022.6.22
文章目录
一、Race Condition(竞争条件、竞态条件、资源竞争 )
-
竞争(Race)
计算机运行过程中,并发、无序、大量的进程在使用有限、独占、不可抢占的资源,由于进程无限,资源有限,产生矛盾,这种矛盾称为竞争(Race)。 -
竞争条件(Race Condition)
由于两个或者多个进程竞争使用不能被同时访问的资源,计算的正确性取决于多个线程的交替执行时序时,就会发生竞争条件(Race Condition)。 -
竞争条件分为两类:
-
Mutex(互斥):
两个或多个进程彼此之间没有内在的制约关系,但是由于要抢占使用某个临界资源(不能被多个进程同时使用的资源,如打印机,变量)而产生制约关系。 -
S
以上是关于多线程系列Race Condition的产生和解决的主要内容,如果未能解决你的问题,请参考以下文章
coreData executeFetchRequest 方法的 Race Condition 导致 nil 数据的问题
Java——多线程高并发系列之Condition接口中的await()signal()signAll()方法