我遇到了一个性能问题,其中 880 个线程同时执行 synchronized() { method() }
,这导致了严重的性能问题。
在 synchronized()
处等待的线程是否可能存在某种限制?我在哪里可以获得限制?
另一个问题是最好将什么放入synchronized(?)
。因为我有不同的类访问该变量,所以我不能放置 synchronized(this)
。
最佳答案
没有办法用synchronized来限制任何东西,对于高级并发结构,你需要看看 http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html .
关于您在synchronized(?)中放入的内容,这意味着您锁定的内容,这取决于您想要实现的锁定行为。如果您有一个可以从所有不同类访问的全局变量(例如 public static Object LOCK = new Object();),并且您对其进行同步,那么所有类都将锁定该全局变量。
关于java - 同步(对象) { } 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016402/