码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-05-11 09:38:19      阅读:526      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!