1.同一个程序多线程访问同一个资源会,如果对资源的访问顺序敏感,就称存在竞态条件.代码区成为临界区。
2.
最常见的竞态条件为:
一,先检测后执行。执行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。
main 线程需要创建文件A,需要检测是否存在,当检测A不存在,另一个线程却创建了文件A,此时main线程的执行时发生在错误的信息之上的。会早上文件A被覆盖或者内容改变。
所以需要对文件进行枷锁。
1.同一个程序多线程访问同一个资源会,如果对资源的访问顺序敏感,就称存在竞态条件.代码区成为临界区。
2.
最常见的竞态条件为:
一,先检测后执行。执行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。
main 线程需要创建文件A,需要检测是否存在,当检测A不存在,另一个线程却创建了文件A,此时main线程的执行时发生在错误的信息之上的。会早上文件A被覆盖或者内容改变。
所以需要对文件进行枷锁。
转载于:https://www.cnblogs.com/zhang1989456/articles/4702201.html