-
线程安全:进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
-
线程不安全:不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据,产生二义性。
-
安全问题出现的原因:
- 线程是并发或并行的;
- 操作是非原子操作;
- 操作是非互斥的;
- 操作的对象时同一个,线程之间数据(.data .bss)共享;
-
线程安全 —>可重入函数
有些库函数会使用线程间共享的数据,如果没有同步控制,线程操作就是不安全的,
所以,我们使用这样一些函数时,就必须使用其安全的版本 —》可重入函数