Java并发编程相关
java并发编程
DayFight_DayUp
尚未工作,有找实习的意向。
展开
-
Java实现线程的三种方式
第一种方式,直接继承Thread类,重写run方法,最为简单: /** * 实现的第一种方式就是继承自Thread类 */ class MyThread extends Thread{ @Override public void run(){ for(int i = 0 ; i <= 1000 ; i++){ System.ou...原创 2019-08-02 16:47:28 · 222 阅读 · 0 评论 -
Java使用Lock和Conditon来实现消费者生产者模式
笔者之前也写过消费者生产者模式,那么废话少说,我们直接上代码 生产者: class Producer extends Thread { private String name; private LinkedList<Integer> appleBox; private Integer boxSize; private AtomicInteg...原创 2019-08-04 21:48:24 · 423 阅读 · 0 评论 -
Java使用BlockingDeque 实现消费者生产者模式
BlockingDeque是一个阻塞有界的链表结构。 对它添加数据或者对他弹出数据,都是阻塞的,因为是有界的,所以我们添加的时候,如果已经达到了容量,他就会等待。 弹出队列也是一样,如果里面没有元素了,弹出的时候就会被阻塞。 下面上代码: 生产者代码 class Producer extends Thread { private String name; priva...原创 2019-08-04 20:46:48 · 482 阅读 · 0 评论 -
Java使用wait()、notify()、notifyAll()实现生产者消费者模式
前言: 1. wait()、notify()、notifyAll()三个方法不是随随便便就能用的,这三个方法一定要在同步代码块中调用的。 2. 同步代码块中的锁最好是使用临界资源,也最好使用临界资源对象的 wait()、notify()、notifyAll()。 3. 如果有多个生产者和多个消费者,那么尽量不要调用notify()、而要用notifyAll()。因为如果某一生产者使用noti...原创 2019-08-03 16:41:46 · 569 阅读 · 0 评论 -
使用信号量实现消费者生产者模式
先贴代码: 苹果工厂: class AppleFactory{ private LinkedList<Integer> appleBox; private Integer boxSize; private AtomicInteger appleCurrentNum; // 非满锁 private final Semaphore no...原创 2019-08-05 14:21:38 · 783 阅读 · 0 评论