3.你真的知道线程间是如何通信的么?

线程启动后,它会在自己独有的栈空间里面运行,但是实际上,两个线程之间是会相互通信的,因为只有这样才能使线程间更加灵活,是资源使用的更加充分。
volatile 和synchronized 关键字
volatile 关键字
首先:volatile 存在的意义就是保证共享变量的可见性。
什么叫做可见性呢?
可见性体现在:两个线程对同一个共享变量进行操作,其中一个线程对其修改,另外一个线程是看不到这个变化的。
为什么会出现这个原因呢?
这个是由于jvm内存模型决定的,内存模型分为共享区域和线程私有区域,线程启动后会把共享区域的变量作为副本存到自己内部,所以当线程修改变量时,知识对自己生效,其他线程并不会感知到,看下图:
volatile 怎么解决可见性的问题呢?
当对volatile 修饰的变量进行修改时,会将当前改变刷新到共享区域,并且使其他存有该变量的线程访问的内存地址失效,重新到共享区域获取该

3.你真的知道线程间是如何通信的么?最先出现在Python成神之路

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/11718.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>