首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >线程间共享资源的重新建立

线程间共享资源的重新建立
EN

Stack Overflow用户
提问于 2014-04-09 17:28:31
回答 1查看 46关注 0票数 0

我正在试图找到正确的方法来处理下面的情况,在python中使用同步。假设有一个共享资源connection,8个线程使用该资源通过连接发出命令。偶尔,connection会抛出异常,为此我添加了一个异常处理例程,可以重新建立连接。

问题是,当连接失效时,所有8个线程都会得到异常。为了解决这个问题,我可以添加一个信号量,这样一次只会有一个线程尝试重新建立连接,但是即使这样也有一个问题。

如果线程1是第一个获得信号量的线程,那么当它们遇到异常时,线程2-8很快就会在该信号量上被阻塞。线程1将得到一个新的连接,线程2-8可以成功地使用,并释放信号量。

此时,我希望再次处理线程2-8,但是,由于它们以前在信号量上被阻塞,线程2现在在信号量上被解除阻塞,并再次尝试重新建立线程1现在已经尝试使用的连接。这可能导致一个级联问题,当其他线程试图重新建立连接时,线程一直试图使用连接。是否有一个标准的范例来处理这样的共享资源?

EN

回答 1

Stack Overflow用户

发布于 2014-04-10 18:20:01

在任何线程获得信号量之后,我会检查是否建立了连接。如果没有,那就重新建立,否则就照常进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22969787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档