Java同步中的模糊行为

时间:2016-07-26 07:13:30

标签: java synchronization

我们有一个Java Web应用程序,它通过Web服务连接到CRM。 CRM对最大请求率有约束,因此我们实施同步块以确保我们的应用程序不应超过CRM最大请求率。当服务器启动时,最初它可以工作,但逐渐停止与CRM通信。日志表明它没有进入同步块。

根据Java规范,在synchronized块内发生任何事情(线程的意外终止),它会释放锁。所以我想知道可能导致这个问题的原因。代码提取如下。

class ConnectToCrm {
...
public send(){
...
 synchronized (ConnectToCrm.class) {
    Thread.sleep(50);
    os = url_con.getOutputStream();
    os.write(data);
    os.flush();
    url_con.connect();
    rc = url_con.getResponseCode();
   }
...
 }
}

0 个答案:

没有答案