多线程
子_轩
不以物喜,不以己悲。
展开
-
多线程基础(一)
进程与线程进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源线程:CPU调度的最小单位,必须依赖进程而存在。并行和并发并行:同一时刻,可以同时处理事情的能力并发:与单位时间相关,在单位时间内可以处理事情的能力线程实现方式继承Thread类public class MyThread extends Thread { @Override pu...原创 2019-04-22 16:57:16 · 239809 阅读 · 1 评论 -
多线程基础(二)
线程间协作等待和通知 wait() 和 notify()/notifyAll() 等待和通知的标准范式 等待方:获取对象的锁循环里判断条件是否满足,不满足调用wait方法条件满足执行业务逻辑通知方:获取对象的锁;改变条件通知所有等待在对象上的线程注:应该尽量使用notifyAll,使用notify因为有可能发生信号丢失的的情况...原创 2019-04-24 11:00:21 · 239503 阅读 · 0 评论 -
多线程并发工具类
一、Fork-Join什么是分而治之?规模为N的问题,N<阈值,直接解决,N>阈值,将N分解为K个小规模子问题,子问题互相对立,与原问题形式相同,将子问题的解合并得到原问题的解。Fork-Join使用两个类来完成以上两件事情:ForkJoinTask:我们要使用ForkJoin框架,必须首先创建一个ForkJoin任务。它提供在任务中执行fork()和join()操作的机制,...原创 2019-04-25 18:03:47 · 239662 阅读 · 0 评论 -
原子操作CAS
一、原子操作原子操作(atomic operation)不需要 synchronized。原子操作指的是不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch(切换到另一个线程)。二、什么是CASCAS是compare and swap的缩写,即比较交换。CAS是乐观锁。在java中锁分为乐观锁和悲观锁。悲观锁是将资源锁住,等一个之前获...原创 2019-05-22 11:22:19 · 240003 阅读 · 0 评论 -
java显示锁
前言synchronized synchronized是Java的关键字,当它用来修饰一个方法或一个代码块时,能够保证在同一时刻最多只有一个线程执行该代码。因为当调用synchronized修饰的代码时,并不需要显示的加锁和解锁的过程,所以称之为隐式锁。LockLock是一个接口,提供了无条件的、可轮询的、定时的、可中断的锁获取操作,所有的加锁和解锁操作方法都是显示的,因而称为显示锁。 ...原创 2019-05-30 18:19:44 · 239953 阅读 · 0 评论