Java并发编程从入门到精通 之 第五章 多线程之间交互:线程阀

1人阅读 评论(0) 收藏 举报
分类:
线程是一种线程与线程之间相互制约与交互的机制。

阻塞队列BlockingQueue:
-1 多个队列概念:
Queue: 队列,遵循先进先出
Deque:双端队列,先进后出,栈结构。
BlockingQueue: 阻塞队列,线程会等待非空(取),非满(写),适合生产者消费者场景。
-2 基本方法:add,offer,put,poll(取走排在首位对象),take(同上,但是队列为空会等待至加入有为止)


数组阻塞队列ArrayBlockingQueue:有界缓存区
    

链表阻塞队列LinkedBlockingQueue:
-1 说明:默认无限大小容量,生产者消费者锁独立,所以可并发处理数据。
-2 基本方法:offerLast、offer、add、addLast、pollFirst、removeFirst

优先级阻塞队列PriorityBlockingQueue:
支持优先级的无界阻塞队列


延时队列DelayQueue:
-1 说明:支持延时获取,可指定多久才能从队列中获取元素
-2 场景:循环查询,一旦能从该队列获取,表示缓存器到了。
-3 使用实例:
class S implaments Delayed {  //操作的对象必须实现Delayed
....
}


同步队列SynchronizedQueue:
-1 说明:不存储元素的阻塞队列,每put一次就必须take一下。
-2 使用场景:适合传递性场景如一个线程数据传给另一个线程


 链表双向阻塞队列LinkedBlockingDeque:
-1 说明:可从两端插入移除,多了addFirst、addFirst、offerFirst、offerLast、peekFirst、peekLast(获取最后一个元素)


同步计数器CountDownLatch:
-1 说明:计数器,计数到零前,await阻塞。
-2 使用场景:多线程上传,多个上传完才算完成。计数的await才不阻塞。
-3 基本方法:await、countDown(减少计数1)
-4 类似:Semaphore(3);--标识允许三个线程同时访问。
         计数信号量,方法:x.acquire()和xx.release();







查看评论

精通Android多线程

-
  • 1970年01月01日 08:00

《 Java并发编程从入门到精通》 多线程之间交互:线程阀

5.1 线程安全的阻塞队列BlockingQueue (1)先理解一下Queue、Deque、BlockingQueue的概念: Queue(队列) :用于保存一组元素,不过在存取元素的时候必须遵...
  • gaowenhui2008
  • gaowenhui2008
  • 2015-11-06 15:04:51
  • 708

Java并发编程从入门到精通 张振华.Jack --我的书

本书作者结合自已10多年Java并发编程经验,详细介绍了Java并发编程的基础概念、工作原理、编程技巧和注意事项,对Java高性能高并发编程有极大的参考价值。 本书内容包括并发编程概念,线程,线程安全...
  • tianya846
  • tianya846
  • 2015-07-26 22:46:29
  • 4459

Java并发编程从入门到精通

  • 2017年07月19日 11:11
  • 31.53MB
  • 下载

Java并发编程从入门到精通.张振华(带详细书签)

  • 2017年12月13日 23:22
  • 93.43MB
  • 下载

《Java并发编程从入门到精通》目录

http://product.dangdang.com/23751808.html 第一部分:线程并发基础 第1章  概念部分 1.1  CPU核心数、线程数 1.2  CPU时间片轮转机...
  • brucexia
  • brucexia
  • 2015-11-05 17:43:57
  • 1408

java并发编程从入门到精通

  • 2018年03月26日 20:41
  • 93.38MB
  • 下载

java线程通信,解决线程之间的交互问题

线程通信: 注意三个都是Object的方法 并且都必须在synchronzied代码块和安全方法下使用否则会报异常 wiat:使当前线程挂起,释放锁,其他线程可以参与进来共享其数据。 notif...
  • Liutt55
  • Liutt55
  • 2015-11-29 21:40:15
  • 1371

Java多线程之线程交互

        线程交互是指两个线程之间通过通信联系对锁的获取与释放,从而达到较好的线程运行结果,避免引起混乱的结果。一般来说synchronized块的锁会让代码进入同步状态,即一个线程运行的同时让...
  • carson0408
  • carson0408
  • 2018-03-04 18:48:16
  • 288

java 并发编程从入门到精通.pdf

  • 2018年03月14日 15:54
  • 93.41MB
  • 下载
    个人资料
    等级:
    访问量: 25万+
    积分: 3281
    排名: 1万+