python - 有没有一种方法可以查明Python线程锁是否被多个线程使用过?

标签 python python-3.x multithreading python-multithreading

我正在开发一个已重构多次的个人项目。它开始使用多线程,然后部分使用 asyncio,现在又回到主要是单线程。

由于所有这些更改,我希望删除和清理代码中的许多 threading.Lock() 以防止将来出现问题。

如何轻松找出应用程序运行时哪些锁正在使用并被多个线程命中?

最佳答案

如果我在这种情况下发现了这一点,我会尝试用包装器替换锁,当发生不良行为时,该包装器会为我进行计数(或打印某些内容,引发异常等)。 Python 很 hacky,所以我可以简单地创建一个函数并覆盖原始的 threading.Lock 来完成工作。这可能需要一些仔细的实现,例如,捕获所有可能的锁定和解锁路径。

但是,您必须小心,即使如此,您也可能不会执行所有可能的代码路径,因此永远不知道是否真的删除了所有“错误”。

关于python - 有没有一种方法可以查明Python线程锁是否被多个线程使用过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55751007/

相关文章:

python float 到 in int 转换

python - Tkinter 将背景图像调整为窗口大小

Python:查找列表列表中任意长度组合最常出现的次数

c - 多线程密码破解器

python - Matplotlib 动画直方图

python - 如何制作 pip 安装包数据(配置文件)?

python - 获取有条件的索引

java - 如何让线程按顺序打印java

java - Kafka 流处理器线程安全吗?

python - Pygame:如何根据输入顺时针/逆时针旋转矩形