擅长:python、mysql、java
<p>根据你是想在其他线程运行时跟踪一个线程,还是要停止其他线程,我可以考虑两种解决方案。如果其他线程必须在不跟踪的情况下运行,只需让trace命令首先检查当前线程id,并且只有当您感兴趣的线程是该线程时才执行跟踪操作:</p>
<pre><code>def dotrace():
if tracing and threading.current_thread() == the_traced_thread:
... do the tracing ...
</code></pre>
<p>相反,如果在跟踪一个线程时其他线程必须停止,则可以让您的跟踪操作作为其他线程的暂停来工作,添加类似于:</p>
^{pr2}$
<p>当然,在最后一种情况下,只有跟踪操作才起到暂停的作用,因此其他线程可能会一直运行,直到它们完成或执行任何被跟踪的操作。在</p>
<p>基本上,您只会停止正在监视的其他线程,而不是所有其他线程。我认为这是好的,因为这增加了程序仍能正常工作的可能性(您使用的一些库和框架可能需要运行其他线程才能跟踪线程实际工作),但当然,YMMV。在</p>