我的问题是关于正在排队的线程。对于我的例子,我有一个Spring上下文。我在无状态类中有一个名为CalculateTax的方法。一个请求进入,一个线程被创建(tA),并最终进入CalculateTax方法。在同一个“时间范围内”,另一个请求进入,另一个线程被创建(tB)。现在,这是我想要了解的。在tA退出该方法之前,AFAIK tB不能执行CalculateTax。这是真的?单身人士和线程
单身人士和线程
回答
不,它不是真的,如果它们是并行线程,每个线程都在它自己的执行堆栈中,所以它应该能够在执行tA时执行。
这是线程的用途。
谢谢 - 正是我所需要的 – user195166 2009-10-26 10:30:37
并且除非您没有使方法同步。 – 2009-10-26 10:54:30
完全正确,除非你没有让他们同步 – OverLex 2009-10-26 14:39:27
只要CalculateTax只使用局部变量(即在方法中声明),就不会有任何线程同步问题,并且多个线程可以毫无问题地调用该方法。
但是,如果出于某种原因CalculateTax使用在类级别定义的变量,并且您使用的是单例模式(您用“singleton”标记了您的问题,所以我猜你是),但您可能会遇到线程同步问题。
他说这个班是无国籍的。所以... – 2009-10-26 10:47:50
啊,没有看到,谢谢 – JonoW 2009-10-26 10:56:17
一般来说,答案是不确定的。如果您的'请求'来自远程客户端,则答案取决于用于服务公开的机制的实现细节。
但是,我不知道真正使代理序列化请求的远程通信框架,也就是说,假定目标服务开发人员解决这个问题(例如,您的任务是为服务实现提供线程安全性,或者使用显式同步等将所有请求序列化)。
- 1. 线程安全枚举单身人士
- 2. 单身人士和常量
- 3. AFNetworking和单身人士
- 4. 单身人士和范围
- 5. 单身人士和DbSimple
- 6. 单身人士和例外
- 7. 爪哇:单身人士使用ENUM ..是我的对象单身人士和线程安全
- 8. NLog。单身人士和调用类/方法/线程
- 9. 统一“ContainerControlled”单身人士和多线程方法调用
- 10. 由Singleton包装的单身人士或非单身人士
- 11. 单身人士通过几个进程?
- 12. 单身人士破坏者
- 13. 单身人士目标C
- 14. ASP.NET中的单身人士
- 15. 单身人士在di.dart
- 16. 继承单身人士
- 17. 单身人士的后果
- 18. 提升单身人士
- 19. Python中的单身人士
- 20. ThreadLocal与单身人士
- 21. servlet是单身人士吗?
- 22. MIDlet作为单身人士
- 23. 带参数的单身人士和init
- 24. 单身人士对象和小类
- 25. iOS单身人士和内存管理
- 26. 无状态单身人士和并发
- 27. Guice和“范围”单身人士
- 28. 单身人士和自动化桥梁
- 29. 可可单身人士和协议
- 30. 可可TDD和单身人士
在这个问题中没有引用Singleton的地方是Spring的上下文单例还是可以删除整个单例? – Janusz 2009-10-26 10:55:04
也许他意味着他在Spring上下文中声明了他的bean是单例(Spring术语,不一定是该术语的经典含义),所以所有请求都获得相同的对象实例 - 因此担心并发。 – 2009-10-26 13:43:46