拥有多年互联网和银行系统性能测试开发经验,对性能瓶颈诊断定位和优化领域有较多研究。
重回互联网行业,性能测试开发、自动化测试开发、Java开发
java的synchronized关键字
上一篇 /
下一篇 2013-01-06 16:36:12
/ 个人分类:Java开发
1.yield()/sleep()/join() java.lang.Thread
join方法等待线程运行结束
sleep方法使线程阻塞一定的时间
yield方法使线程放弃一次调度机会
2.wait()/notifyAll()/notify() java.lang.Object
wait方法使线程阻塞直至其它线程调用notify或notifAll
notifyAll方法唤醒所有等在对象锁的线程
notify方法唤醒一个等在对象锁的线程
3.sleep() 与 wait()
两者都使线程阻塞,但sleep时当前线程不释放对象锁,wait时则释放对象锁
4.中断
java.lang.Thread:
void interrupt(),改变中断状态
static boolean interrupted(),检查并清除中断状态
boolean isInterrupted(),检查中断状态
Object.wait、Thread.sleep、Thread.join这些方法内部会不断检查中断状态的值,并抛出InterruptedException异常
- publicclassSynMutex {
- publicstaticvoidmain(String[] args) {
- Integer i =0;
- synchronized(i) {
- i =1;
- i.notify();
- i.notifyAll();
- try{
- i.wait();
- }catch(Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- staticpublicsynchronizedvoidmethod1() {
- }
- publicsynchronizedvoidmethod2() {
- }
- publicvoidmethod3() {
- synchronized(this) {
- }
- }
- publicvoidmethod4() {
- synchronized(SynMutex.class) {
- }
- }
- }
收藏
举报
TAG: