随笔分类 -  多线程

javase 多线程
线程通信(多线程)
摘要:线程名.wait(long timeout)让指定线程等待long毫秒 线程名.wait(); 让指定线程休眠 等待通知 线程名.notify(); 通知一个线程可以醒来 线程名.notifyAll(); 通知所有线程可以醒来 阅读全文
posted @ 2022-03-12 11:03 墨染Diana 阅读(109) 评论(0) 推荐(0)
Re adWriteLock--->读写锁
摘要:1创建读锁和写锁两个类 继承接口Runnable 重写run方法创建读写锁实现类的对象 写出有参构造方法2 创建一个读写锁的实现类:在类里面创建读写锁(读锁和写锁都要创建) 给出私有的属性private ReentrantReadWriteLock rrwl = new ReentrantReadW 阅读全文
posted @ 2022-03-11 16:53 墨染Diana 阅读(105) 评论(0) 推荐(0)
实现callable接口
摘要:1.创建类实现Callable接口 并重写call方法 (需要写泛型)在call方法里写具体的实现任务2.创建动态线程池Executors.newCachedThreadPool();3将线程任务提交给线程池 并用Future<>接收Future<>接受名字= 线程池名字.submit(new 实现 阅读全文
posted @ 2022-03-11 16:52 墨染Diana 阅读(131) 评论(0) 推荐(0)
lock--> 重入锁---->ReentrantLock使用方法
摘要:1.创建Runnable的实现类创建 2中的类的属性重写run方法写一个有参构造方法 将属性给形参2写一个类在类里创建重入锁对象ReentrantLock reentrantLock = new ReentrantLock();锁的名字.lock()上锁锁的名字.unlock()释放锁(一般写在fi 阅读全文
posted @ 2022-03-11 16:52 墨染Diana 阅读(147) 评论(0) 推荐(0)
创建线程池
摘要:1.通过Executors.newCachedThreadPool来创建动态线程池通过Executors.newFixedThreadPool(3)来创建固定值线程池2.提交线程任务交由线程池分配线程任务 线程名.submit(new 实现类名):3关闭线程池线程名.shutdown(); 阅读全文
posted @ 2022-03-11 16:51 墨染Diana 阅读(120) 评论(0) 推荐(0)