java并发编程
介绍java并发的相关知识点
xiaotai1234
计算机研究生在读,会使用java,javascript,php,c++,c,python等多门编程语言,懂算法,设计模式,jvm虚拟机,并发等。了解操作系统,计算机组成原理,计算机网络等基础底层知识。
展开
-
共享模型之工具
共享模型之工具 一、线程池 1.自定义线程池 步骤1:自定义拒绝策略接口 步骤2:自定义任务队列 步骤3:自定义线程池 步骤4:测试 二、ThreadPoolExecutor 1.线程池状态 2.构造方法 3.newFixedThreadPool 4.newCachedThreadPool 5.newSingleThreadExecutor 6.提交任务 7.关闭线程池 8.模式之Worker Thread 定义 饥饿 创建多少线程池合适 9.任原创 2020-12-02 10:09:05 · 312 阅读 · 0 评论 -
共享模型之不可变
共享模型之不可变 一、日期转换的问题 1.日期转换的问题 下面的代码在运行时,由于 SimpleDateFormat 不是线程安全的 2.思路 - 同步锁 这样虽能解决问题,但带来的是性能上的损失,并不算很好: 3.思路 - 不可变 二、不可变设计 1.final 的使用 2.保护性拷贝 3.模式之享元 简介 体现 DIY 4.原理之 final 设置 final 变量的原理 获取 final 变量的原理 5.无状态 ...原创 2020-12-01 09:50:20 · 226 阅读 · 0 评论 -
共享模型之无锁
共享模型之无锁 一、问题提出 1.为什么不安全 2.解决思路-锁 3.解决思路-无锁 二、CAS 与 volatile 1.慢动作分析 2.volatile 3.为什么无锁效率高 4.CAS 的特点 三、原子整数 四、原子引用 1.不安全实现 2.安全实现-使用锁 3.安全实现-使用 CAS 4.ABA 问题及解决 ...原创 2020-12-01 09:12:57 · 244 阅读 · 0 评论 -
共享模型之内存
共享模型之内存 一、Java 内存模型 二、可见性 1.退不出的循环 2.解决方法 3.可见性 vs 原子性 4.原理之 CPU 缓存结构 CPU 缓存结构 CPU 缓存读 CPU 缓存一致性 内存屏障 5. 模式之 Balking 三、有序性 1.原理之指令级并行 2.诡异的结果 3.解决方法 4. 原理之 volatile 5.happens-before 6.习题 balking 模式习题 线程安全单例习题原创 2020-11-30 10:51:33 · 200 阅读 · 0 评论 -
共享模型之管程
共享模型之管程 一、共享带来的问题 1.小故事 2.Java 的体现 3.问题分析 4.临界区 Critical Section 5.竞态条件 Race Condition 多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件 二、synchronized 解决方案 1.应用之互斥 2.synchronized 3.思考 4.面向对象改进 三、方法上的 synchronized 1.语法 2.不加 synchronized 的方法原创 2020-11-29 12:15:56 · 356 阅读 · 1 评论 -
java线程
java线程 一、创建和运行线程 1.方法一,直接使用 Thread 2.方法二,使用 Runnable 配合 Thread 3.方法三,FutureTask 配合 Thread 二、观察多个线程同时运行 三、查看进程线程的方法 1.windows 2.linux 3.Java 四、线程运行原理 1.栈与栈帧 2.线程上下文切换(Thread Context Switch) 五、常见方法 六、start 与 run 1.调用 run 2.调用 start 3.小结 七、sle原创 2020-11-24 16:39:23 · 258 阅读 · 0 评论 -
进程与线程
进程与线程 一、概述 1.进程 2.线程 3.二者对比 二、并行与并发 1.单核cpu 2.多核cpu 3.总结 三、应用 1.异步调用 2.提高效率原创 2020-11-24 10:34:50 · 224 阅读 · 0 评论