一.分析
1.定义
线程安全是指在多线程环境下,多个线程同时访问同一资源时,不会产生意外结果或导致数据出错的状态。一个线程安全的程序能够正确地处理并发请求,不论线程执行的顺序如何
2.线程安全的表现
线程安全的具体表现有原子性,有序性和可见性。
原子性是指一个线程执行的一系列程序指令操作的时候应该不能中断的。
可见性是在多线程环境下,由于读和写发生在不同的线程里面,有可能会出现某个线程对共享变量的修改,对其他线程不是实时可见的
有序性说的是程序编写的指令顺序和最终CPU可能会出现不一致的这样一个现象,这种现象可以称为指令重排序
二.回答
线程安全是指某个函数在并发环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。
简单来说,就是多个线程同时访问共享变量的时候,得到的结果和我们预期的一样,就是线程安全。所以有四个关键词:并发、多线程、共享变量、正确完成。这里所谓的正确完成,其实就是要满足所谓的原子性、有序性和可见性。
三.扩展
1.并发与并行
并发:指两个或多个事件在同一个时间段内发生。
并行:指两个或多个事件在同一时刻发生,同时发生。