首页 > 其他 > 详细

同步代码块、同步方法以及同步锁的语法

时间:2016-05-11 09:35:43      阅读:322      评论:0      收藏:0      [点我收藏+]

1.同步代码块

在Thread子类run()方法代码块之外套一个下面的代码

synchronized(obj)
{
...
//此处就是原有的run()方法代码块
}

这里的obj就是需要锁定的对象。

2.同步方法

只要在可变类中修改方法上,加上syschronized修饰即可。

注:同步方法的同步监视器是this。

3.同步锁

先在类中定义锁对象,然后在需要保证线程安全的方法中加锁(锁变量.lock()),最后再在finally块中保证释放锁(锁变量.unlock())

class abc{
//定义锁对象
private final ReentrantLock lock = new ReentrantLock();
//...

//定义需要保证线程安全的方法
public void f(){
//加锁
lock.lock();
try{
//实现代码块
}
 //使用finally块来保证释放锁
finally{
lock.unlock();
}
}
    
}

 

思考:

以上方法都是为了保证线程安全才存在的,是不是也就意味着只有可变类在多线程的情况下,才需要使用到这些方法。

同步代码块、同步方法以及同步锁的语法

原文:http://www.cnblogs.com/moonpool/p/5480593.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!