当前位置: 技术问答>java相关
一个有关synchronized的问题
来源: 互联网 发布时间:2015-05-29
本文导语: 假设某个block被synchronized 。 当其他线程要用到该block的时候,是处于等待该block的synchronized被解除还是出于其他什么状态? | 自动处于等待状态,当该 lock available(某拥有该lock的线程调用not...
假设某个block被synchronized 。
当其他线程要用到该block的时候,是处于等待该block的synchronized被解除还是出于其他什么状态?
当其他线程要用到该block的时候,是处于等待该block的synchronized被解除还是出于其他什么状态?
|
自动处于等待状态,当该 lock available(某拥有该lock的线程调用notify()),系统会唤醒某个等待的线程并执行该线程。
|
当然是等待被解除喽!
|
如果某个线程调用一个被同步block去访问数据k时,synchronized可以保证这个被同步的block 完成前其他线程不能调用任何被同步的block去访问k.
其实正常返回或是非预期的异常情况都会使线程放弃线程锁.
其实正常返回或是非预期的异常情况都会使线程放弃线程锁.
|
如果block已经被其它线程锁住当然等待解锁,才能用block。