这是一个普遍的问题。假设服务器有并发问题。客户端可以同时发送多个请求以触发问题。那么如何更频繁地解决问题?
1)客户需要足够快以同时发送更多请求
2)服务器需要足够快
他们会帮助重建这个问题吗?或者是否是相反的方式?服务器需要慢吗?
编辑1: 我认为这是竞争条件并发问题。多个线程使用相同的对象,但该对象不是线程安全的。
我主要担心的是假设我们有一个客户端每秒发送一些请求,是否更容易用更快的服务器或更慢的服务器重新创建问题?
答案 0 :(得分:0)
如果您希望更多地解决问题,请同时获取更多活动客户端,或者让客户端使用自动循环来提交导致问题的API命令。
我认为你想让这个问题发生,这样你才能确定它为什么会发生?
答案 1 :(得分:0)
如果您正在谈论锁争用并发问题,那么我会说快速(或多个)客户端和慢速服务器。花在锁上的时间越多越好。
如果您在谈论竞争条件时需要高水平的随机性 - 不同的服务器性能水平。服务器上的大量连接也有助于此,但您需要尝试各种不同的服务器负载。从一些客户端开始,以确保并发性,然后增加吞吐量,直到您充斥服务器。
我怀疑重建你的问题会受到重创。注意添加System.out
或记录消息,因为这会改变同步模式。
修改强>
如果您正在讨论对非线程安全的对象的读/写竞争条件,那么我会说您希望获得尽可能多的不同性能级别。竞争条件都是关于线程时间片完成并且线程被换出,缓存内存刷新时间,其他线程在写入器线程运行的同时运行以及操作顺序。
同样,我会编写你的客户端,以便它们启动缓慢然后构建,这样服务器就会受到不同程度的负载。