我有疑问。
假设在多线程环境中,10K个用户同时使用一个站点,并且该站点有一个静态方法。
如果JAVA中的静态方法创建单个实例,那么第10k用户需要等待该方法,直到剩余的用户完成其使用。
对吗?
任何人都可以请解释吗?在JAVA中是静态方法创建单个实例吗?
1
A
回答
6
如果JAVA中的静态方法创建单个实例,则第10K个用户需要等待该方法,直到剩余的usres完成用法。
调用静态方法不会隐式创建一个实例。你可以这样做的方法,当然 - 但你不必这样做。
创建实例也不需要锁 - 尽管如此,您可以根据需要添加同步。
因此,在不需要对共享数据进行任何同步访问的简单静态方法的情况下,多个线程同时调用该方法应该没有问题。
0
NO.10K用户不需要等待该方法,直到剩余的使用完成使用。
因为它不是静态的方法不同步...所以多个线程可以访问同一个对象。
2
我想你的意思是像单身人士或工厂,例如
public class X {
public static X getInstance() {
return new X();
}
private X() {}
}
然后这一切都取决于你在静态方法上做了什么。如果该方法不关心线程(如上例),那么它不应该被同步并且可以被同时执行,然后你错了,因为可以同时执行X.getInstance()
并且10Kth不必等待以前完成。
如果方法不能是多线程的,它应该是同步的(整个方法或其中的一部分),那么是的,你是对的。
相关问题
- 1. Java静态实例创建者?
- 2. 创建实例(静态)
- 3. 在静态方法中包装单例实例方法是不好的?
- 4. 在java中的静态方法vs实例方法的决定?
- 5. Java泛型,单例和静态方法
- 6. 一个静态方法总是可以转换为一个实例方法吗?
- 7. 为什么静态方法在单例实例中不可用?
- 8. 在Java中创建静态嵌套类的实例
- 9. 静态或实例方法在.NET中扩展更好吗?
- 10. 在Java中创建静态单例模式
- 11. 从静态方法内创建类实例
- 12. 如何从静态方法创建类的实例?
- 13. 创建新的实例或使用公共静态方法?
- 14. 创建实例以调用静态方法的模式名称
- 15. 这是在C++中创建单例类的正确方法吗?
- 16. 在Python中的类中创建一个类的静态实例
- 17. 静态方法是否可以调用Java中的实例方法
- 18. Python中的静态和实例方法
- 19. ExecutorService - 在方法中创建新实例vs每个类创建一个实例
- 20. 是静态方法吗?
- 21. 在单个实例中更改静态变量的值(Java)
- 22. 在C++中创建多个全局静态实例?
- 23. Java,静态方法可以实例化一个被调用的对象吗?
- 24. 从静态方法在派生类中创建通用类实例
- 25. 如何在python实例方法中创建静态局部变量?
- 26. 如何在Python中使用静态方法创建自我实例
- 27. 为什么我要在java中创建一个静态类的实例?
- 28. Android:创建静态方法来返回应用程序实例是否安全?
- 29. 在对象实例和旁注上调用静态方法Java
- 30. Java静态与实例