文章目录
并发编程基础
线程状态
NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED
中断线程
守护线程
未捕获异常的处理器
锁对象
#ReentrantLock方法可以保护代码块临界区,它确保任何时候只有一个线程进入临界区。当一个线程成功调用Lock方法后,其他线程只能等待。
#可以通过传入true,false指定是否采用公平锁。公平锁是指让每个线程都有机会执行,其倾向于等待过久的线程。
var bankLock=new ReentrantLock(false);
bankLock.lock();
try
{}
finally{
bank.unlock();
}
sychronized关键字
#public sychronized void method()
{
method body
}
#sychronized 代码块
sychronized {
//do something
}
条件对象
var bankLock=new ReentrantLock(false);
private Condition sufficientFunds=bankLock.newCondition()
bankLock.lock()
try{
whiel(accounts[from]<amount)
sufficientFunds.await();
sufficientFunds.singnalAll()
}finally
{
bankLock.unlock()
}