随笔分类 - 多线程
摘要:/** *将线程要运行的逻辑代码及数据同步相关的锁,放在同一个类中,这里是Business类,数据同步由Business类维护 *而与线程控制相关的代码分开,指的是线程类本身 * */ public class CommunicationTest { public static void main(String[] args) { Business business = new Business(
阅读全文
摘要:退出线程主要的思路是用一个标志位或者是使用线程的中断方法 下面的例子是可以确保调用shutdown()方法,无论线程是否在休眠中,线程都会退出
阅读全文
摘要:一、线程状态 NEW 新new出来,还没有执行start方法 RUNNABLE 可运行状态,或者在执行,或者在等待CPU分配时间 BLOCKED 当线程调用wait方法后,线程就进入了阻塞状态,等待其他的线程调用notify方法,将当前线程唤醒,然后去争抢锁,进入可运行状态 WAITING 等待状态
阅读全文
摘要:(1) ThreadPoolExetor#submit(Callable<T> task) 有返回值 (2) ThreadPoolExetor#submit(Runnable task, T result) 有返回值,返回值是通过result间接获取的 (3)ThreadPoolExetor#sub
阅读全文
摘要:工人线程Worker thread会逐个取回工作并进行处理,当所有工作全部完成后,工人线程会等待新的工作到来 5个工人线程从传送带取数据,3个传送工人线程将数据放入传送带
阅读全文
摘要:实现的思路是,通过代理将方法的调用转变为向阻塞队列中添加一个请求,由一个线程取出请求后执行实际的方法,然后将结果设置到Future中 这里用到了代理模式,Future模式
阅读全文
摘要:生产者消费者模式描述的是协调与协作关系。比如一个人正在准备食物(生产者),而另一个人正在吃(消费者),他们使用一个共用 的桌子用于放置盘子和取走盘子,生产者准备食物,如果桌子上已经满了就等待,消费者(那个吃的)如果桌子空了的话就等待 采用生产者消费者模式可以做到异步,解耦的目的。
阅读全文
摘要:public class MyBlockQueue { private int count; private int head; private int tail; private String[] arr; public MyBlockQueue(int arrLen) { this.count = 0; thi...
阅读全文
摘要:自己实现的CountDownLatch ,只是模拟他的功能而已。jdk中的实现采用的是AQS
阅读全文
摘要:通俗的讲就是,CountDownLatch相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都将通过,但是一旦大门打开,所有线程都通过了,那么这个CountDownLatch的状态就失效了,门的状态也就不能变了,只能是打开状态。也就是说CountDownLatch的状态是一次性的
阅读全文
摘要:MessageQueue 和blockQueue起到的作用是一样的 生产者 消费者 测试
阅读全文
摘要:3个学生一起参加考试,一共有三道题,要求所有学生到齐才能开始考试,全部同学都做完第一题,学生才能继续做第二题,全部学生做完了第二题,才能做第三题,所有学生都做完的第三题,考试才结束
阅读全文
摘要:Phaser表示“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题 启动三个线程,分别对三个文件夹搜索,文件要以txt结尾,修改时间要在一天之内,并将文件路径打印在控制台 /** * 开启三个线程对三个文件夹进行搜索 * */ public class FileSearch impleme
阅读全文
摘要:队列的操作: offer 是向队列尾部添加元素,返回true或者false poll 是从队列头部取数据,如果没有取到返回null offer和poll都不会阻塞当前线程 阻塞操作 put 往队列当中中放入数据 take 从队列当中取数据
阅读全文
摘要:Future提供了三种功能: 1)判断任务是否完成; 2)能够中断任务; 3)能够获取任务执行结果
阅读全文
摘要:线程池相关类 ExecutorService , 线程池接口 Executors 线程池工具类,可以生成不同类型的线程池, Executors.newFixedThreadPool(3); //固定数量的线程池 corePoolSize=maximumPoolSize=3 Executors.new
阅读全文
摘要:A线程调用B线程,B线程发生异常,A怎么知道B线程发生异常了
阅读全文

浙公网安备 33010602011771号