多线程
Wang Sheng
这个作者很懒,什么都没留下…
展开
-
Java多线程之CyclicBarrier
Java多线程之CyclicBarrier CyclicBarrier使用场景为:假设有7个人要开会,人没到齐就不能开始,只有当7个人都到齐才能开始开会… CyclicBarrier(int parties, Runnable barrierAction) :创建一个新的 CyclicBarrier,它将在给定数量的参与者(线程)处于等待状态时启动,并在启动 barrier 时执行给定的屏障操作...原创 2019-12-26 22:21:35 · 89 阅读 · 0 评论 -
Java多线程之CountDownLatch使用
关于Java多线程之CountDownLatch使用 假设现在有6个学生在上晚自习,我们创建6个线程来代表6个学生,只有当6个学生都下晚自习出了教室之后,假设main线程代表班长,此时班才能锁门走人…也即是,前面6个学生线程执行完任务之后,mian线程才可执行,请看如何使用CountDownLatch实现: import java.util.concurrent.CountDownLatch; ...原创 2019-12-26 20:55:33 · 177 阅读 · 0 评论 -
Java多线程Lock Condition的使用介绍
Java多线程Lock Condition的使用介绍 假设:多线程之间按照顺序调用,实现A->B->C->A->B->C…->A,要求用3个线程实现: A打印5次,B打印10次,C打印15次 接着 A打印5次,B打印10次,C打印15次 …来10轮 import java.util.concurrent.locks.Condition; import java....原创 2019-12-24 21:39:51 · 249 阅读 · 0 评论 -
Java多线程之生产者与消费者模式
Java多线程之生产者与消费者模式 synchronized版 问题:有2个线程,一个线程+1,一个线程-1,这样循环加减1,10次 public class ThreadWaitNotifyDemo { private int number = 0; //此方法实现对number+1操作 public synchronized void increment() thro...原创 2019-12-23 22:16:23 · 381 阅读 · 0 评论 -
多线程卖票复习Lock和Lambda版
多线程卖票复习Lock和Lambda版 class Ticket { private int number = 30; private Lock lock = new ReentrantLock(); public void saleTicket(){ lock.lock(); try{ if(number >...原创 2019-12-23 20:58:03 · 506 阅读 · 1 评论 -
多线程卖票复习传统版一
多线程卖票复习传统版一多线程卖票问题 多线程卖票问题 假设现在有3个线程同时要卖出30张票,代码如何实现,请看传统版: class Ticket { private int number = 30; public synchronized void saleTicket(){ if(number > 0){ System.out.p...原创 2019-12-22 22:14:28 · 243 阅读 · 0 评论