多线程
saiuna
今天不学习,明天变辣鸡
展开
-
多线程篇 之 ReentrantLock 与 Condition
一、 ReentrantLockReentrantLock是一个互斥锁,也是一个可重入的互斥锁。ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,但是相比功能更加丰富,添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。先来看构造://默认非公平锁public ReentrantLock() { sync = new NonfairSync();}// 可选是否公平锁public ReentrantLock(boolean原创 2020-07-13 10:27:17 · 961 阅读 · 0 评论 -
多线程篇 之通信工具类(Semaphore,CountDownLatch,CyclicBarrier)
介绍下JUC的 通信工具类 Semaphore, CountDownLatch,CyclicBarrier 三剑客。一、 SemaphoreSemaphore 信号量,用来控制同一时间,资源可被多少个线程访问。先看构造 //可传入一个 boolean 值,控制抢锁是否是公平的。 public Semaphore(int permits, boolean fair) { sync = fair ? new FairSync(permits) : new Nonfair原创 2020-07-09 23:37:56 · 197 阅读 · 0 评论 -
多线程篇 之 volatile
生于忧患,死于安乐~ 道理都懂,有些人却醒着醉此前项目中看到了AtomicInteger 这个关键字,然后顺藤摸瓜瞅到了介个,构造器~还有 一个 加持了volatile关键字的 value。 private volatile int value; /** * Creates a new AtomicInteger with the given initial value. * * @param initialValue the initial ...原创 2020-07-04 09:10:23 · 280 阅读 · 0 评论 -
多线程篇 (一)基础篇
多线程学习 (一)基础篇把学习当糖吃~会发现学习是一件很快乐的事情多线程的基本概念多线程: 嗯哼,说你呢是不是 一边听歌,一边扣脚,一边阅读着文章,甚至还不忘记笔记~单线程: 当然你也可以 先扣完脚,然后听完歌,再去阅读文章,完了最后记笔记~1 Thread类和Runnable接口如何使用多线程的呢?继承Thread类,并重写run方法; 实现Runnable接口的run方法;1.1 继承Thread类先学会怎么用,再学原理。首先我们来看看怎么用Thr...原创 2020-07-03 11:27:22 · 282 阅读 · 0 评论