synchronized关键字

今天看书时遇到了一些同步的代码,发现synchronized掌握得不好,回头看看并在这里写出来复习一下:

当两个或者多个线程需要访问共享的资源时,需要确保每次只有一个线程使用资源,实现这一目的的过程叫同步。Java实现同步的关键是监视器的概念,监视器是用作互斥锁的对象。在给定时刻,只有一个线程可以拥有监视器。有两种方法创建同步代码,都需要使用synchronized关键字:

1、同步方法

用synchronized关键字修饰的方法为同步方法。当某个线程进入同步方法中时,调用同一实例的该同步方法(或任何其他同步方法)的所有其他线程都必须等待。为了退出监视器将对象的控制权交给下一个等待线程,监视器的拥有者只从同步方法中返回。

2、synchronized语句

一般形式如下:

synchronized(objRef){

    //statements to be synchronized

}

objRef是对被同步对象的引用。synchronized语句块确保对objRef对象的成员方法的调用,只会在当前线程成功进入objRef的监视器之后发生。

转载于:https://my.oschina.net/u/2453016/blog/547927

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值