我有一个具有多线程的服务器。 每个连接都有它自己的线程。线程有时需要访问对象的某些方法,并且该方法一次只能调用一次。那么什么对性能更好:只是在每个线程需要使用它时为每个线程创建一个新对象。或者共享一个具有同步方法的全局对象?
最佳答案
同步
不会带来更好的性能。如果操作不当,可能会使性能变得更糟。
您没有显示任何代码,因此我们无法为您提供有关重点优化的建议。
作为一般建议:
1) 尽可能避免任何状态。这种方式不需要同步
2) 如果对象需要有状态,则使状态不可变。这样您就不必关心同步并避免乏味的错误
3)如果对象创建很便宜,那么如果可能的话就使用(2)来实现
4)如果对象创建很繁重,请研究单例模式并尝试在方法上使用锁。
关于
Each connection have its own Thread
确保使用线程池
关于java - Java多线程性能,创建新对象或者使用synchronized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46611094/