课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
并发编程开发是目前大多数软件开发程序员都需要熟练掌握的一种开发方式,而今天我们就通过案例分析来了解一下,java编程并发编程安全都有哪些原因。
从计算机硬件系统出发,我们可以将计算机系统简化为三大部件,即CPU、内存以及IO设备。随着技术的不断发展,计算机硬件也有了长足的发展。各大部件的能力与日俱增。但是有一个问题一直围绕在计算机硬件结构周围,那就是CPU、内存以及IO设备之间的数据访问速度有着巨大的速度差异。正式由于这种访问速度的巨大差异造成了影响程序性能的大因素正是慢的IO设备,因此如果需要提升整体的性能,仅仅提高某一项是不够的,要从整体出发,充分发挥CPU性能优势。
为了应对这种数据读取速率差异,CPU中增加了高速缓存,来平衡其与内存的速度差异。操作系统通过增加进程、线程,以便与大可能分时复用CPU,充分挖掘CPU性能。
在CPU中都会有一个高速缓冲区,在实际运行过程中,CPU先从计算机主存中将数据复制到高速缓冲区中。CPU在进行运算时,直接基于高速缓冲区的数据进行运算,逻辑运算之后,再将高速缓冲区的数据刷新到主存中。通过这样的方式,CPU的执行指令的速度就可以大大提升。
在单核CPU时代,程序中所有的线程都跑在这颗独苗CPU中,由于所有当线程都是操作同一块CPU的缓存,因此据一个线程对缓存的操作,对另外一个线程来说一定是可见的。因此不存在线程安全的问题。
但是当在多核CPU场景下,线程跑在不同当CPU中,因此对变量进行逻辑操作时,对其他线程不可见,因此会存在并发安全问题。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。