[Java] 多线程的同步机制

多线程的同步机制是通过“互斥锁”来实现的。当用synchronized关键词来修饰一个代码块或者方法时,表示必须在当前代码块执行完成,或进入sleep状态后,才能执行下一个代码块或者方法。

多线程的同步机制,主要用于解决,两个线程同时访问一个对象时,可能发生的数据不同步现象。

synchronized(lock),括号中的lock可以是任意对象,甚至是数组对象。简单来说,就是保证lock对象的一系列程序执行完毕后,再执行下面的代码。

为了增强可读性,可以直接把要访问的那个对象当成锁,
类似下面这样:
synchronized(key)
{
    key.update(seed);
}
则可以一目了然地表明:大括号中要锁定的资源是key
对象

线程的同步机制,形象理解:
好比一间房子,如果是空的,就能进入使用里面的资源,并在里面把门反锁,此时别人无法进入。(保证了资源的独占使用)。此时有人想用房子,就得门口等着。。。

synchronized ( lock ) // 等待进入
{ // 进入,从里面反锁
    … 使用资源res …
} // 出来


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值