![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Javav并发编程
文章平均质量分 95
多线程,线程池,锁
星光之子0317
这个作者很懒,什么都没留下…
展开
-
Java并发编程(十三)-AbstractQueuedSynchronizer(AQS)
AQS-AbstractQueuedSynchronizer原创 2021-07-18 18:43:53 · 176 阅读 · 1 评论 -
Java并发编程(十二)-Lock
Lockconcurrent包Lock接口基本介绍Lock方法Lock与synchronized的区别(面试题,待完善)concurrent包在此借用一下图片,感谢上一层的实现都基于下一层高层:Lock、同步器、阻塞队列、Excecutor等中层:AQS(AbstractQueuedSynchronizer)、非阻塞数据结构、原子变量类底层:volatile变量的读/写、CAS操作Lock接口基本介绍Lock接口是在jdk5之后开始有的Lock接口的实现 提供了比 synchr原创 2021-07-03 23:33:28 · 73 阅读 · 2 评论 -
Java并发编程(十一)-并发关键字volatile
volatile关键字volatile关键字的语义volatile的原理和实现机制volatile的使用场景volatile和synchronizedvolatile关键字的语义保证了 不同线程之间 对 共享变量 操作时 的可见性,也就是说当一个线程修改volatile修饰的变量,另外一个线程会立即看到最新的值禁止对指令进行重排序操作,直接禁止JVM和处理器 对 volatile关键字修饰的指令 重排序,但是对于volatile前后 无依赖关系的指令 则可以随便怎么排序volatile的原理和实原创 2021-06-25 18:24:53 · 111 阅读 · 2 评论 -
Java并发编程(十)-并发关键字synchronized
并发关键字synchronized之前涉及到synchronized的一些内容也还需要再找出来原创 2021-06-29 21:33:06 · 212 阅读 · 3 评论 -
Java并发编程(九)-Java内存模型(JMM)
Java内存模型原创 2021-06-21 21:33:25 · 184 阅读 · 0 评论 -
Java并发编程(八)-线程的实现、线程上下文切换、线程调度、线程安全、进程调度算法
线程的实现、线程上下文切换、线程调度、线程安全、进程调度算法线程的实现线程上下文切换上下文切换上下文切换的原因上下文切换的开销线程调度方式抢占式调度协同式调度Java线程调度的实现:抢占式线程让出CPU的情况线程安全(重要)java中的线程安全定义线程安全的实现方法多线程共享数据(重要)进程调度算法优先调度算法先来先服务调度算法短作业优先调度算法高优先权优先调度算法非抢占式优先权算法抢占式优先权调度算法高响应比优先调度算法时间片的轮转调度算法时间片轮转算法多级反馈队列调度算法线程的实现线程的实现主要有三原创 2021-06-21 20:23:32 · 247 阅读 · 0 评论 -
Java并发编程(七)-各种锁、CAS、ABA、死锁
各种锁、CAS、ABA锁的作用锁分类乐观锁CAS(Compare And Swap)CAS的问题ABA自旋时间过长只能保证一个共享变量的原子操作悲观锁自旋锁自旋锁优缺点适应性自旋锁公平锁、非公平锁可重入锁共享锁、独占锁无锁、偏向锁、轻量级锁、重量级锁无锁偏向锁轻量级锁和重量级锁(理解)分段锁读写锁死锁锁优化锁的作用Java中的锁 主要用于 保障 多并发线程情况下 数据的一致性。在多线程编程中为了保障数据的一致性,通常需要在使用 对象 或者 方法 之前加锁,这时如果有其他线程也需要使用该对象或者该方法,则原创 2021-06-21 11:17:22 · 471 阅读 · 0 评论 -
Java并发编程(五)-ThreadPoolExecutor源码、Executors
线程池线程池工作原理线程池解决什么问题线程池优点和风险线程复用线程池核心参数(重要)核心线程等待队列-workQueue非核心线程线程池状态(重要)线程池工作流程(重要)ThreadPoolExecutor属性线程池工作原理JVM 先根据 用户的参数 创建 一定数量 的 可运行的线程任务,并将其 放入队列中在线程创建后启动这些任务如果 线程数量 超过了 最大线程数量(用户设置的线程池大小),则 超出数量的线程 排队等候,在有任务执行完毕后,线程池调度器会发现有可用的线程,进而再次从队列中取出任务并执原创 2021-06-18 15:59:18 · 157 阅读 · 0 评论 -
Java并发编程(四)-线程池工作原理、工作流程、常用线程池、线程池拒绝策略
线程池工作原理、工作流程、常用线程池、线程池拒绝策略线程池工作原理线程池解决什么问题线程池优点和风险线程复用线程池核心参数(重要)核心线程等待队列-workQueue非核心线程线程池状态(重要)线程池工作流程(重要)常用线程池newCachedThreadPoolnewFixedThreadPoolnewScheduledThreadPoolnewSingleThreadExecutornewWorkStealingPool总结线程池涉及常见阻塞队列(重要)LinkedBlockingQueueSynchr原创 2021-06-17 21:59:34 · 187 阅读 · 0 评论 -
Java并发编程(三)-Executor、ExecutorService、AbstractExecutorService、ScheduledExecutorService
Executor、ExecutorService、AbstractExecutorService、ExecutorsExecutor框架Executor类ExecutorService关闭相关方法中止相关方法提交相关方法调用相关方法invokeAllinvokeAnyAbstractExecutorService实现ExecutorService接口submit 相关实现invokeAll 相关实现invokeAny 相关实现其他方法newTaskFor(重要)doInvokeAnyExecutor框架原创 2021-06-09 22:41:16 · 107 阅读 · 0 评论 -
Java并发编程(二)-Runnable、Callable、Future、RunnableFuture、FutureTask
Runnable、Callable、Future、RunnableFuture、FutureTaskRunnable接口@FunctionalInterface-函数式接口Callable接口Future接口cancelisCancelledisDoneget总结RunnableFutureFutureTask关系类图属性任务状态其他属性WaitNode构造方法静态代码块实现Future接口实现RunnableFuture接口其他方法finishCompletion-完成计算awaitDone-等待完成(重原创 2021-06-09 16:30:12 · 100 阅读 · 0 评论 -
Java并发编程(一)-线程生命周期、线程状态、创建线程、线程方法
创建线程、线程声明周期、线程方法创建线程创建线程原创 2021-06-07 22:48:37 · 246 阅读 · 0 评论