Java 两个不同的类A和B在各自的线程上调用同一类实例C的方法

Java 两个不同的类A和B在各自的线程上调用同一类实例C的方法,java,multithreading,Java,Multithreading,所以我有一个简单的服务器类,它为与“服务器”的每个连接创建一个侦听器类的实例。侦听器在自己的线程上运行 我发现在调用改变文件/变量的服务器类上的方法时,可能存在并发控制问题。但是,如果两个侦听器试图调用一个只返回一些服务器状态信息的方法,会发生什么情况? 同一服务器实例能否同时处理2个调用?或者其中一个侦听器必须等到服务器执行完第一个调用方的方法后才能执行 谢谢你们的帮助 如果方法不同步,服务器可以同时处理这两个调用 但如果他们要求身份,这意味着身份会随着时间的推移而改变。如果它随时间而改变,那

所以我有一个简单的服务器类,它为与“服务器”的每个连接创建一个侦听器类的实例。侦听器在自己的线程上运行

我发现在调用改变文件/变量的服务器类上的方法时,可能存在并发控制问题。但是,如果两个侦听器试图调用一个只返回一些服务器状态信息的方法,会发生什么情况? 同一服务器实例能否同时处理2个调用?或者其中一个侦听器必须等到服务器执行完第一个调用方的方法后才能执行


谢谢你们的帮助

如果方法不同步,服务器可以同时处理这两个调用

但如果他们要求身份,这意味着身份会随着时间的推移而改变。如果它随时间而改变,那么对该状态的所有访问(读写)都应该以同步方式完成。否则,侦听器线程可能会看到status的过时值


所以方法应该是同步的,或者状态应该是AtomicXxx值,或者应该是易失性的。如果不查看代码,不知道状态是如何读取和修改的,就很难给出最佳、正确的解决方案。

如果方法不同步,服务器可以同时处理这两个调用

但如果他们要求身份,这意味着身份会随着时间的推移而改变。如果它随时间而改变,那么对该状态的所有访问(读写)都应该以同步方式完成。否则,侦听器线程可能会看到status的过时值


所以方法应该是同步的,或者状态应该是AtomicXxx值,或者应该是易失性的。如果不查看代码,不知道状态是如何读取和修改的,就很难给出最佳、正确的解决方案。

如果方法不同步,服务器可以同时处理这两个调用

但如果他们要求身份,这意味着身份会随着时间的推移而改变。如果它随时间而改变,那么对该状态的所有访问(读写)都应该以同步方式完成。否则,侦听器线程可能会看到status的过时值


所以方法应该是同步的,或者状态应该是AtomicXxx值,或者应该是易失性的。如果不查看代码,不知道状态是如何读取和修改的,就很难给出最佳、正确的解决方案。

如果方法不同步,服务器可以同时处理这两个调用

但如果他们要求身份,这意味着身份会随着时间的推移而改变。如果它随时间而改变,那么对该状态的所有访问(读写)都应该以同步方式完成。否则,侦听器线程可能会看到status的过时值


所以方法应该是同步的,或者状态应该是AtomicXxx值,或者应该是易失性的。最好的,正确的解决方案很难在没有看到代码的情况下给出,并且知道状态是如何被读取和修改的。

对于这样的事情,我想象不经常改变,我会考虑使用Read WrreBook-所以大多数时候你可以同时有多个线程读取状态。当你想更新这个值时,只需要阻止它们。

对于这样的事情,我想象不经常改变,我会考虑使用Read WrreBook-所以大多数时候你可以同时有多个线程读取状态,并且只需要在更新值时阻止它们。我想象不经常改变,我会考虑使用Read WrreBook-所以大多数时候你可以有多个线程同时读取状态,当你想要更新这个值时只需要阻止它们。我会考虑使用Read WrreBook-所以大多数时候你可以有多个线程同时读取状态,当你想要更新这个值时只需要阻止它们。