![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
qq_39449585
这个作者很懒,什么都没留下…
展开
-
用ReetrantLock实现生产者消费者
Basket类:生产者消费者需要互斥访问的资源class Basket { int capacity; int num; final Lock lock = new ReentrantLock(); final Condition notFull = lock.newCondition(); final Condition notEmpty = lock.newCondition(); Basket(int capacity) { t原创 2020-05-11 18:25:34 · 159 阅读 · 0 评论 -
Lock接口和ReentrantLock类
一、Lock的一般用法Lock l = ...;l.lock();try { // access the resource protected by this lock} finally { l.unlock();}二、Lock中的方法lock():获取锁 unlock():释放锁 newCondition():返回一个绑定到这个锁对象实例的一个Condition实例 tryLock():仅当锁未被其他线程占有时才能获取到并返回true,否则返回false lo原创 2020-05-10 20:42:26 · 287 阅读 · 0 评论 -
用Synchronized实现生产者消费者
Basket类:生产者消费者需要互斥访问的资源class Basket { int capacity; int num; Basket(int capacity) { this.capacity = capacity; } boolean isEmpty() { return num == 0 ? true : false; } boolean isFull() { return num =原创 2020-05-10 11:40:18 · 176 阅读 · 0 评论 -
Java中的Thread类
一、Thread类中的属性String name:线程的名称 int priority:线程的优先级(默认为5,最低为1,最高为10) boolean daemon:是否为守护线程 boolean sitllborn:JVM状态 Runnable target:需要运行的代码 ThreadGroup group:所属线程组 long tid:线程id二、Thread类中的方法构造方法Thread():调用init方法,用到的参数ThreadGroup g、Runnable target原创 2020-05-09 10:00:47 · 204 阅读 · 0 评论