2010-01-06 58 views
0

我遇到了一个perfomance问题,其中880个线程在同一时间正在做synchronized() { method() },这导致了一个主要的性能问题。同步(对象){}问题

是否有可能在synchronized()上等待线程的限制?我在哪里可以获得限制?

另一个问题是什么最好放入synchronized(?)。因为我有不同的类访问该变量,所以我不能把synchronized(this)

+2

你能否更好地解释你的上下文,以及这样的方法。您可能会使用错误的数据结构。 – notnoop 2010-01-06 21:32:39

+1

880个线程?你遇到性能问题并不奇怪。你能用更少的线程解决你的问题,而使用异步操作吗? – 2010-01-06 21:34:25

+0

什么是“主要性能问题”? 879死锁线程? – 2010-01-06 22:07:49

回答

2

有没有办法限制同步的任何东西,对于高级并发构造,你需要看看http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html

关于你放在同步的内容(),这意味着你锁定的内容取决于你想要实现的锁定行为。如果你有一个全局的对象(例如public static Object LOCK = new Object();),它可以从所有不同的类访问,并且你可以同步,那么所有的类都将锁定在那个类上。

看看java tutorial on synchronization