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