Java 多线程
2019-10-11 02:03:37 25 举报
AI智能生成
Java 并发
作者其他创作
大纲/内容
JDK 并发工具
ReentrantLock
公平锁
new ReentrantLock(true)
可重入
rl.lock 几次,rl.unlock()几次
等待时限
中断响应
实现
原子状态:CAS
等待队列
Condition
注意方法和ReentrantLock方法的配合
c.await()
c.awaitUninterruptibly(0
c.signal()
c.signalAll()
c = rl.newCondition()
Semaphore
s.acquire()
s.acquireUninterruptibly()
s.tryAcquire()
s.release()
ReadWriteLock
CountDownLatch
CyclicBarrier
LockSupport
ThreadPool
并发容器
Java 并发
概念
并发、并行
阻塞、非阻塞
同步、异步
liveness
死锁
活锁
饥饿
JMM
原子性
可见性
有序性
并发级别
阻塞(悲观)
无饥饿
一个线程释放资源后,如何将资源公平分配给其他线程
非公平锁
这样就不是无饥饿
无障碍(乐观)
避免死锁
至少一个线程可以退出临界区
一致性标记
无锁
有一个线程循环尝试有限次数内完成操作
无等待
所有线程有限步内完成操作
RCU
线程操作
增
new Thread(new Runnable())
new Thread()
t.setDaemon(true)
t.setPriority(Thread.MIN_PRIORITY)
t.start()
断
t.interrupt()
设置线程t的中断标记,以下函数抛出异常
Thread.sleep()
sleep current thread
o.wait()/o.wait(0)
释放锁
o.wait(n)
释放锁,超时后尝试获得锁
Thread.interrupted()
判断中断标记并清除
t.isInterrupted()
判断中断标记
组
new TheadGroup(\"name\")
tg.activeCount()
Thread.currentThread().getThreadGroup().getName()
收藏
0 条评论
下一页
为你推荐
查看更多