0
点赞
收藏
分享

微信扫一扫

并发编程基础

转角一扇门 2022-04-03 阅读 59
java

文章目录

并发编程基础

线程状态

NEW

RUNNABLE

BLOCKED

WAITING

TIMED_WAITING

TERMINATED

中断线程

守护线程

未捕获异常的处理器

锁对象

#ReentrantLock方法可以保护代码块临界区,它确保任何时候只有一个线程进入临界区。当一个线程成功调用Lock方法后,其他线程只能等待。
#可以通过传入truefalse指定是否采用公平锁。公平锁是指让每个线程都有机会执行,其倾向于等待过久的线程。
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()
}

volatile字段

举报

相关推荐

0 条评论