随笔分类 - java并发
摘要:Future和CallableRunnable缺陷不能返回一个返回值也不能抛出checked ExceptionCallable接口类似于Runnable,被其它线程执行的任务实现call方法有返回值Future可以用Future.get来获取Callable接口返回的执行结果,还可以通过Futur
阅读全文
摘要:AQS(AbstractQueuedSynchronizer)AQS是一个用于构建锁、同步器、协作工具类的工具类(框架)。有了AQS以后,更多的协作工具类都可以很方便得被写出来ReentrantLock,Semaphore,ReentrantLock和Semaphore,包括CountDownLat
阅读全文
摘要:控制并发流程控制并发流程的工具类,作用就是更容易得让线程之间合作让线程之间相互配合,来满足业务逻辑比如让线程A等待线程B执行完毕后再执行等合作策略类作用说明Semaphore信号量,可以通过控制“许可证”的数量,来保证线程之间的配合线程只有在拿到“许可证”后才能继续运行。相比于其他的同步器,更灵活C
阅读全文
摘要:并发容器ConcurrentHashMap:线程安全的HashMapCopyOnWriteArrayList:线程安全的ListBlockingQueue:这是一个接口,表示阻塞队列,非常适合用于作为数据共享的通道ConcurrentLinkedQueue:高效的非阻塞并发队列使用链表实现。可以看做
阅读全文
摘要:atomic(原子类)不可分割一个操作是不可中断的,即便是多线程的情况下也可以保证java.util.concurrent.atomiceTnrNEEOT原子类的作用和锁类似,是为了1保证开发情况下线桂女生。个个过原子类相比于锁,有一定的优势:粒度更细:原子变量可以把竞争范围缩小到变量级别这是我们可
阅读全文
摘要:LockLock和synchronized,这两个是最常见的锁,它们都可以达到线程安全的目的,但是在使用上和功能上又有较大的不同。Lock并不是用来代替synchronized的,而是当使用synchronized不合适或不足以满足要求的时候,来提供高级功能的。为什么synchronized不够用效
阅读全文
摘要:synchronized ? 是 Java 中的关键字,是一种同步锁。主要应用于多线程环境下保证线程的安全性。 四种用法 修饰一个代码块 被修饰的代码块称为同步语句块,其作用的范围是大括号{} 括起来的代码,作用的对象是调用这个代码块的对象; synchronized(this) class Syn
阅读全文
摘要:ThreadLocal类 ThreadLocal叫做线程变量,它是一个线程的本地变量,意味着这个变量是线程独有的,是不能与其他线程共享的。这样就可以避免资源竞争带来的多线程的问题。即 ThreadLocal类用来提供线程内部的局部变量,不同的线程之间不会相互干扰。 ThreadLocal类的常用方法
阅读全文
摘要:newFixedThreadPool 一种线程数量固定的线程池,当线程处于空闲状态时,他们并不会被回收,除非线程池被关闭。当所有的线程都处于活动状态时,新的任务都会处于等待状态,直到有线程空闲出来。 /** * 描述:newFixedThreadPool */ public class FixedT
阅读全文
摘要:创建线程池参数 参数名 类型 含义 corePoolSize int 核心线程数,详解见下文 maxPoolSize int 最大线程数,详解见下文 keepAliveTime long 保持存活时间 workQueue BlockingQueue 任务存储队列 threadFactory Thre
阅读全文

浙公网安备 33010602011771号