Java 多线程
2019-10-11 02:03:37 25 举报
AI智能生成
Java 并发
作者其他创作
大纲/内容
JDK 并发工具<br>
ReentrantLock
公平锁<br>
new ReentrantLock(true)
可重入
rl.lock 几次,rl.unlock()几次<br>
等待时限<br>
rl.tryLock(5, TimeUnit.SECONDS)
中断响应<br>
try: rl.lockInterruptibly(), rl.isHeldByCurrentThread()<br>
实现<br>
原子状态:CAS
等待队列
park(), unpark()<br>
原子状态:CAS
等待队列
park(), unpark()<br>
Condition
c.await()
c.awaitUninterruptibly(0
c.signal()<br>
c.signalAll()
c = rl.newCondition()<br>
Semaphore
new Semaphore(int permites, boolean fair<br>
s.acquire()
s.acquireUninterruptibly()
s.tryAcquire()
s.tryAcquire(long timeout, TimeUnit unit)
s.release()
ReadWriteLock
CountDownLatch
CyclicBarrier
LockSupport
Guava, RateLimiter<br>
ThreadPool
并发容器<br>
概念
并发、并行
阻塞、非阻塞
同步、异步<br>
liveness
死锁<br>
活锁
饥饿<br>
JMM
原子性
可见性
有序性
并发级别
阻塞(悲观)
syncronized, 重入锁,等不到资源挂起<br>
无饥饿<br>
公平锁
非公平锁
无障碍(乐观)
至少一个线程可以退出临界区
一致性标记
无锁<br>
有一个线程循环尝试有限次数内完成操作
无等待
RCU<br>
线程操作<br>
增
new Thread(new Runnable())<br>
new Thread()<br>
t.setDaemon(true)
t.setPriority(Thread.MIN_PRIORITY)
t.start()
断<br>
t.interrupt()
Thread.interrupted()
t.isInterrupted()
组<br>
new TheadGroup("name")<br>
tg.activeCount()
Thread.currentThread().getThreadGroup().getName()
收藏
0 条评论
下一页