Java学习笔记
文章平均质量分 96
不会Java的我
这个作者很懒,什么都没留下…
展开
-
Java线程基础
一、线程状态转换新建(New):创建后尚未启动可运行(Runnable):可能正在运行,也可能正在等待 CPU 时间片。包含了操作系统线程状态中的 Running 和 Ready阻塞(Blocking):等待获取一个排它锁,如果其线程释放了锁就会结束此状态无期限等待(Waiting):等待其他线程显式地唤醒,否则不会被分配 CPU 时间片进入方法 退出方法没有设置 Timeout 参数的 Object.wait() 方法 Object.notify() / Obje原创 2021-10-28 22:39:54 · 89 阅读 · 0 评论 -
Java虚拟机中线程安全
为什么需要多线程为了合理利用 CPU 的高性能,平衡 CPU、内存、I/O 设备的速度的差异CPU 增加了缓存,均衡与内存的速度差异; //导致可见性问题操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O设备的速度差异; // 导致原子性问题编译程序优化指令执行次序,使得缓存能够得到更加合理的利用。// 导致 有序性 问题若多个线程对同一个共享数据进行访问而不采取同步操作,操作结果是不一致的public class ThreadUnsafeExample {原创 2021-10-28 22:21:36 · 204 阅读 · 0 评论