
JAVA多线程
文章平均质量分 91
小图包
这个作者很懒,什么都没留下…
展开
-
AQS 原理解析以及源码分析
什么是AQS?AbstractQueuedSynchronizer,可以叫做抽象队列同步器,可以避免处理多个位置上发生的竞争问题。在基于AQS构建的同步器中,只可能在一个时刻发生阻塞,从而降低上下文切换的开销,并提高吞吐量。AQS 的核心也包括了这些方面:同步队列,独占式锁的获取和释放,共享锁的获取和释放以及可中断锁,超时等待锁获取这些特性的实现,这些实际上是AQS提供出来的模板方法。AQS 是一个抽象类,当我们继承 AQS 去实现自己的同步器时,要做的仅仅是根据自己同步器需要满足的性质实现线程获取原创 2021-05-11 23:58:17 · 257 阅读 · 1 评论 -
线程池使用
一. 线程池简介1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。2. 线程池的工作机制 2.1 在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,...原创 2020-12-21 15:28:54 · 156 阅读 · 0 评论 -
synchronized同步方法
实例变量非线程安全public class HasSelfPrivateNum { synchronized public void addI (String username){ int num = 0; try { if (username.equals("a")){ num=100; ViseLog.e(原创 2017-09-20 15:34:56 · 225 阅读 · 0 评论 -
LinkedBlockingQueue用法
阻塞队列LinkedBlockingQueue用法在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么原创 2017-09-21 11:52:25 · 1585 阅读 · 0 评论 -
java多线程Future、FutureTask使用示例,返回异步的结果
1、Future、FutureTask介绍Future是一个接口,该接口用来返回异步的结果。FutureTask是一个类,是Future 的一个实现。2、主要方法future.get();或者future.get(10000, TimeUnit.MILLISECONDS);123获取多线程异步执行结果,但get方法是一个同步方法,如果未拿到结果或者未超时,主原创 2017-09-21 14:44:08 · 3304 阅读 · 0 评论