并发编程
文章平均质量分 61
我想要的我会认真
人生苦短,看上就买
展开
-
聊聊你对多线程的理解
目录 文章内容 什么是线程? 线程的创建? 线程的生命周期? sleep()与wait()的异同? synchronized和Lock的区别? 文章内容 可以考虑从什么是线程?到线程的创建,以及线程的生命周期,说说线程的几个方法,再到线程安全问题引出synchronized关键字与Lock进行比较。 什么是线程? 线程是cpu调度的最小单位。 线程的创建? 1.继承Thread类2.实现Runnable接口3.实现Callabel接口4.线程池 开发中:优先选择:实现Runnabl原创 2021-09-16 21:22:31 · 551 阅读 · 1 评论 -
原子性?可见性?有序性?理解并发编程3大特性!
目录 文章内容 JMM(Java内存模型) 原子性 可见性 有序性 volatile底层是如何保证可见性和禁止指令重排的呢? 除此之外,java语言中有一个先行发生原则( happens-before ) 来保证JMM的有序性。 总结volatile的内存语义 文章内容 Java虚拟机规范试图定义一种Java内存模型,来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台上都能达到一致的内存访问效果。因此java虚拟机类比现代计算机内存模型规范了java内存模型JMM.原创 2021-09-07 12:20:16 · 158 阅读 · 0 评论 -
现代计算机的内存模型
首先看现代计算机抽象内存模型图 指令是由CPU处理器执行,数据是在主内存当中的,但计算机的存储设备与处理器的运算速度有几个数量级的差距, 所以现代计算机系统加入一层读写速度接近处理器运算速度的高速缓存以作为来作为内存与处理器之间的缓冲( 仅次于CPU寄存器 ) 。 引入缓存加快速度,引入多核处理器提高并发性 引入之后就会发现一些问题? 1.缓存一致性的问题-->缓存一致性协议--->利用总线嗅探技术 (在多处理器下,为了保证各个处理器的缓存是一致的,就会实现缓存缓存一致性协...原创 2021-09-06 23:10:08 · 280 阅读 · 0 评论