阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元 ...
分类:
其他好文 时间:
2017-12-03 13:04:54
阅读次数:
170
阻塞队列之LinkedTransferQueue ...
分类:
其他好文 时间:
2017-11-14 17:19:49
阅读次数:
157
本文主要内容索引 1、Java线程 2、线程模型 3、Java线程池 4、Future(各种Future) 5、Fork/Join框架 6、volatile 7、CAS(原子操作) 8、AQS(并发同步框架) 9、synchronized(同步锁) 10、并发队列(阻塞队列) 本文仅分析java并发 ...
分类:
编程语言 时间:
2017-11-11 15:24:03
阅读次数:
286
处理机的执行方式分为系统态和用户态进程控制一般是由内核来实现,内核的两大方面功能: 支撑功能:中断处理、时钟管理、原语操作 资源管理功能:进程管理、存储器管理、设备管理 进程的创建: 进程的层次结构:os允许一个进程创建另一个进程,所以形成了一个层次结构 子进程继承父进程的所拥有的资源,注意Wind ...
分类:
系统相关 时间:
2017-10-26 23:11:31
阅读次数:
183
概述 ConcurrentLinkedQueue是一种基于链表实现的无界非阻塞线程安全队列,遵循先入先出规则。 线程安全队列有两种实现方式: 阻塞方式:对入队和出队操作加锁。阻塞队列。 非阻塞方式:通过自旋CAS实现。例如:ConcurrentLinkedQueue 下面从源代码中分析Concurr ...
分类:
编程语言 时间:
2017-10-25 00:42:15
阅读次数:
288
【BlockingQueue常见】 [ ArrayBlockingQueue ] 基于数组的阻塞队列的实现,在ArrayBlockingQueue内部,维护了一个定长数组,以便缓存队列中的数据对象,其内部没实现读写分离,也就意味着生产者和消费者不能完全并行,长度需要自定义,可以指定先进先出或者先进后 ...
分类:
其他好文 时间:
2017-10-14 18:33:16
阅读次数:
165
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类 三.同步容器的缺陷 ...
分类:
编程语言 时间:
2017-10-13 14:13:32
阅读次数:
238
阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示: 从上图可以看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另一端输出; 常用的队列主要有以下两种:(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,DelayQueue就是其中的一种) 先进先出 ...
分类:
其他好文 时间:
2017-10-09 15:27:16
阅读次数:
160
《java并发编程实战》的第7章是任务的取消与关闭。我觉得这一章和第6章任务执行同样重要,一个在行为良好的软件和勉强运行的软件之间的最主要的区别就是,行为良好的软件能很完善的处理失败、关闭和取消等过程。 一、任务取消 在java中没有一种安全的抢占式(收到中断请求就立刻停止)的方式来停止线程,因此也 ...
分类:
编程语言 时间:
2017-10-04 12:17:15
阅读次数:
262
一、线程池初探 所谓线程池,就是将多个线程放在一个池子里面(所谓池化技术),然后需要线程的时候不是创建一个线程,而是从线程池里面获取一个可用的线程,然后执行我们的任务。线程池的关键在于它为我们管理了多个线程,我们不需要关心如何创建线程,我们只需要关系我们的核心业务,然后需要线程来执行任务的时候从线程 ...
分类:
编程语言 时间:
2017-10-01 21:08:36
阅读次数:
268