比如Class A里面有个同步方法synchronized method();
B类有个A类型的属性,如果 B b=new B(),
b.a.method();锁加在哪个对象上呢
线程锁都是加在调用同步方法的那个最直接的对象上吗
线程锁到底加在哪个对象上 java
答案:2 悬赏:10 手机版
解决时间 2021-04-13 08:14
- 提问者网友:难遇难求
- 2021-04-13 01:47
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-04-13 02:34
线程锁可以分为对象锁和方法锁,synchronized method() 这是个方法锁,也就是这个锁是再a对象的method () 的方法上,并不是在啊,a或b的对象上。锁,锁的时线程,就是那个线程进入这个方法就要获得他得钥匙,钥匙只有一个,也就是说,这个方法在任何一个时刻都只能有一个线程去是用他。
全部回答
- 1楼网友:玩家
- 2021-04-13 03:14
锁的竞争只发生在多个线程之间,代码中两个synchronized(a)在同一个线程里面(而且是一层包着另一层,里面的synchronized(a)变得毫无意义),所以能执行
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯