![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 99
张嘉烘
这个作者很懒,什么都没留下…
展开
-
共享模型之内存
共享模型之内存一、Java 内存模型二、可见性例子引入解决方法可见性 vs 原子性三、有序性诡异的结果解决方法原理之 volatile如何保证可见性如何保证有序性double-checked locking 问题double-checked locking 解决happens-beforeMonitor主要关注的是访问共享变量时,保证临界区代码的原子性现在我们进一步深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题一、Java 内存模型JMM 即 Java Memory Mo原创 2020-11-30 10:28:46 · 104 阅读 · 0 评论 -
共享模型之管程
共享模型之管程一、共享问题问题引入答案分析临界区 Critical Section竞态条件 Race Condition二、java对象头三、synchronized方法上的Synchronized特殊情况分析synchronized 原理进阶轻量级锁锁膨胀自旋优化偏向锁四、线程安全分析成员变量和静态变量是否线程安全?局部变量是否线程安全?局部变量线程安全分析常见线程安全类五、Monitor六、wait/notify原理之 wait / notifywait/notify的正确姿势七、park &原创 2020-11-29 15:37:14 · 186 阅读 · 0 评论 -
java线程
java线程创建和运行线程方法一:直接使用 Thread方法二:使用 Runnable 配合 ThreadThread 与 Runnable 的关系方法三:FutureTask 配合 Thread原理之线程运行栈与栈帧线程上下文切换(Thread Context Switch)常用方法注意问题start 与 runsleep 与 yieldjoin 方法创建和运行线程方法一:直接使用 Thread// 创建线程对象Thread t = new Thread() { public void run(原创 2020-11-27 17:23:06 · 133 阅读 · 0 评论 -
并发、并行和线程、进程
并发、并行和线程、进程进程线程进程线程二者对比并行例子进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐、360 安全卫士等)线程一个进程之原创 2020-11-27 09:53:17 · 120 阅读 · 0 评论