为了账号安全,请及时绑定邮箱和手机立即绑定

那我是不是可以不使用创建thread对象时需要传入的类的对象的class对象。可以随便哪个类的class对象都可以呢?因为在学习对象锁的视频中老师创建的锁对象是随便的Object对象所以类锁上应该也可以随便哪个类的clas对象。还是说只能是实现Runnable接口的类的父类的对象啊?还有实现runnable接口的类对象不同类锁会失效,这种是只有this修饰才会 这样吗?对象锁中自己创建的锁对象只有一个,就算创建两个线程的对象不同但是锁对象只有一个还是只有一个可以持有锁。也就是对象锁不会失效。

new thread(exampleObject)//就是这个对象exampleObject不同只要不是使用this锁对象 。对象锁也不会 失效。对吗

正在回答

1 回答

我理解应该是会失效,因为类锁是对你创建线程时传入的类加锁,如果你两次传入的是不同的类,就是给不同的类加锁,没有竞争资源,但是并不影响不同的类执行自己的代码逻辑,就是说会同时并行你创建线程时传入的类的处理逻辑,如果创建线程时都不传入当前类,当前类的逻辑不会执行,也就无法验证当前类的锁是否有效了,因为没有线程要获取当前类的资源

0 回复 有任何疑惑可以回复我~
#1

慕莱坞8286419

第一种相当于是你一个要做1,一个要做2,你当前1的锁为什么会影响到2的执行呢; 第二种是你一个要做2,一个要做3,1压根不执行,自然不存在锁有效
2024-04-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

那我是不是可以不使用创建thread对象时需要传入的类的对象的class对象。可以随便哪个类的class对象都可以呢?因为在学习对象锁的视频中老师创建的锁对象是随便的Object对象所以类锁上应该也可以随便哪个类的clas对象。还是说只能是实现Runnable接口的类的父类的对象啊?还有实现runnable接口的类对象不同类锁会失效,这种是只有this修饰才会 这样吗?对象锁中自己创建的锁对象只有一个,就算创建两个线程的对象不同但是锁对象只有一个还是只有一个可以持有锁。也就是对象锁不会失效。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信