0

我目前正在为 Web 应用程序使用外部 API。当用户点击一个按钮时,我打开连接,进行适当的调用,然后关闭连接。这可以正常工作,但是,在多线程 Web 环境中,当同时单击两次时,应用程序崩溃......这是由于连续调用关闭连接所致。

理想情况下,我想在第一个请求上打开一个连接,然后进行所有调用。如果有一个并发请求进来,并且它看到有一个打开的连接,那么它应该使用它。然后应该只关闭连接如果当前没有处理请求。

我开始编写一些代码来实现我想要的,但我想知道是否有任何人都知道的特定设计模式来解决这个问题,或者是否有人有任何建议......谢谢!

4

2 回答 2

0

我猜你正在寻找lock
我不知道我头顶上有合适的图案。

于 2013-02-27T21:24:25.683 回答
0

1-为每个请求建立新连接的成本是多少?

2-图书馆作者是否发布了任何指南来限制连接数?如果不是,那么完全不在您的设计中引入锁定或多线程将非常有帮助。

这是我在深入研究多线程场景之前问自己的最初问题。

同样在您上面解释的情况下,您永远无法确定下一个请求何时到来,因此如果您使用该类的单个对象,那么使用 wikipedia 中解释的双重检查锁定技术会很有帮助

双重检查锁定

于 2013-02-28T06:11:07.737 回答