高人,java中 synchronized() 括号里面的参数问题 那个参数有什么用啊

2025-04-03 19:34:26
推荐回答(5个)
回答1:

当需要线程同步时用。比如多个线程同时调用某个方法,就应该加上synchronized关键字。
至于synchronized(),括号里面是锁对象,线程要执行方法,就必须获得对象的锁(线程在执行时获得此对象的锁,别的线程就只能等了),这样通过加锁机制实现同步。

回答2:

括号里面相当于锁的名字,里面传同一个对象,说明这几个地方用同一把锁,然后里面可以传不同参数,就可以同时加几把锁了

回答3:

这个参数就是一个识别符,
比如第一个线程进方法的时候,它把这个参数拿走了,第二个想进去的时候发现这个参数没有,它就不能进去,等第一个完成了他的工作出来的时候又把参数放回去,后面想进去的线程(可能会有多个,不过只会有一个拿到)又拿到参数进去,其它线程发现参数没了又不能进去,等前一个出来把参数放回去,拿到参数的再进去,如此循环...

回答4:

这是一个同步监视器,里面的参数是一般要监视那对象,也就是说锁定那个对象不能被多线程同时访问和修改!

回答5:

传的是你调用方法想锁住的对象吧