在网络上看到关于线程安全的问题,在这里,我想结合操作系统中线程的概念,来说说这个问题!
进程是资源分配的最小单位,线程是程序执行的最小单位!也就是说对于进程来说,它的内存空间有一块特殊的公共区域,通常称为堆,这个区域是所有进程内的线程共享的区域。这个区域共享,好处是数据的传输非常方便,坏处是会造成数据的不安全,因为所有线程都能用,这就引出了我们说的线程安全的问题。
那么什么是线程安全?怎么去保证线程安全呢?
线程安全本质上是内存的安全!我们一步一步说明怎么去来实现线程的方法!
每个线程都有自己的线程上下文,包括唯一的整数线程ID、栈、栈指针、程序计数器、通用目的寄存器和条件码。既然是这个线程自己的,那么就可以是安全的了,那我们找到了第一个线程安全的地方,将数据放在栈内存中!在操作系统中不难过,这个地方的默认大小是8M。在代码中,我们线程的局部变量一般都是放在栈内存中的,也就是会说局部变量是线程安