![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 86
Ronbay123
无
展开
-
Callable和Future
package com.ronbay.thread.timer;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurre...原创 2016-05-09 20:12:03 · 90 阅读 · 0 评论 -
线程池的引入-解决性能问题
业务是这样的:背景:提供rsf服务1.先根据图片流,将图片写入到服务端的/dev/shm文件下下面(此路径问服务器端内存目录);2.利用gm将服务器端的图片锐化并变灰;3.再利用tesseract将图片识别并形成txt文件;4.由于图片和txt文件均为临时文件,便利用线程池的方式将临时文件删除private static final Log logger = L...原创 2015-11-04 13:55:57 · 133 阅读 · 0 评论 -
BlockingQueue,阻塞队列实现线程通信
可阻塞队列 (1) 队列包含固定长度的队列和不固定长度的队列。 (2)什么是可阻塞队列,阻塞队列的作用与实际应用,阻塞队列的实现原理ArrayBlockingQueue 看ArrayBlockingQueue类的帮助文档,其中有各个方法的区别对比的表格 只有put方法和take方法才具有阻塞功能 (3)用3个空间的队列来演示阻塞队列的功能和效果 (4)用两个具有1个空间的队...原创 2016-05-17 22:32:27 · 257 阅读 · 0 评论 -
Exchanger
Exchanger 用于实现两个人之间的数据交换,每个人在完成一定的事务后想与对方交换数据,第一个先拿出数据的人将一直等待第二个人拿着数据到来时,才能彼此交换数据。package com.ronbay.thread.timer;import java.util.concurrent.Exchanger;import java.util.concurrent.Execu...原创 2016-05-12 14:51:28 · 91 阅读 · 0 评论 -
CountDownLatch
CountDownLatch (1)犹如倒计时计数器,调用CountDownLatch对象的countDown方法将计数器减1,当技术到达0时,则所有等待者或单个等待者开始执行。这直接通过代码来说明CountDownLatch的作用,这样理解更为直接 (2)可以实现一个人(也可以是多个人)等待其他所有人都来通知他,可以实现一个人通知多个人的效果,类似裁判一声口令,运动员同时开始奔跑,或...原创 2016-05-12 14:32:29 · 80 阅读 · 0 评论 -
CyclicBarrier
类似旅游的一个场景 表示大家彼此等待,大家集合好后才开始出发,分散活动后又在指定地点集合碰面,这就好比整个公司的人员利用周末时间集体郊游一样,先各自从家出发到公司集合后,再同时出发到公园游玩,在指定地点集合后再同时开始就餐,...。package com.ronbay.thread.timer;import java.util.concurrent.CyclicBarr...原创 2016-05-12 12:03:51 · 91 阅读 · 0 评论 -
ThreeConditionCmmunication
面试题 子线程执行10次,主线程执行100次;接着子线程再执行十次,主线程再执行100次,如此循环50次 package com.ronbay.thread.timer;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util....原创 2016-05-12 10:53:35 · 102 阅读 · 0 评论 -
Semaphore实现信号灯
1.Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个允许的并发访问数。 (1)Semaphore实现的功能就类似厕所有5个坑,假如有十个人要上厕所,那么同时能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中的任何一个人让开后,其中在等待的另外5个人中又有一个可以占用了。 (2)另外等待...原创 2016-05-12 10:53:03 · 93 阅读 · 0 评论 -
Condition
Condition Condition的功能类似在传统线程技术中的Object.wait()和Object.notify() 的功能。在等待Condition时,允许发生“虚假唤醒”,这通常作为对基础平台语义的让步。对于大多数应用程序,这带来的实际影响很小,因为Condition应该是在一个循环中被等待,并测试正被等待状态声明。某个实现可以随意移除可能的虚假唤醒,但建议应用程序程序员...原创 2016-05-11 22:51:03 · 96 阅读 · 0 评论 -
Java读写锁ReadWriteLock
1.多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥 package com.ronbay.thread.timer;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.lock...原创 2016-05-11 18:49:59 · 85 阅读 · 0 评论 -
Lock&Condition实现线程同步通信
Java1.5提供了锁机制,位于java.util.current.locks下面 Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们徐用同一个Lock对象。锁是上在代表要操作的资源的类的内部方法中,而不是线程代码中。读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,写锁与写...原创 2016-05-10 08:34:14 · 108 阅读 · 0 评论 -
Java线程池的使用
Java四种线程池的使用本文转载,转载地址:http://cuisuqiang.iteye.com/blog/2019372 Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大...原创 2016-03-17 14:48:05 · 80 阅读 · 0 评论