临界区

1、线程安全问题

每个线程都有自己的栈,而局部变量是存储在栈中的,这就意味着每个线程都有一份自己的“局部变量”,如果线程仅仅使用"局部变量"那么就不存在线程安全问题。

那如果多个线程共用一个全局变量呢?

比如看如下代码:

临界区·  

运行结果:

临界区

2、临界区实现之线程锁

 

临界区

运行结果:

临界区

临界区的代码在同一时刻是只允许一个线程执行的,这样的话就不会出现问题了

这样的话就不会出现问题了