欢迎选择我的课程,让我们一起见证您的进步~~
沒有像jstack那麼方便直接用的東西,一般來說有幾個方案:
import pudb; pudb.set_interrupt_handler()
celery
NOTE: 所有依賴signal的方案,有個缺點就是,POSIX有很多函數會在這些中斷產生時,回傳EINTR,直接導致Python 異常,例如send, recv, read, write 等等。 。 。
send
recv
read
write
我不懂 Java,所以不清楚你想要的是什麼。你是想列印出所有執行緒的呼叫棧嗎?好像不容易的樣子。
我通常是:
python直接用多線程貌似是不行的 因為有個叫GIL的東西 至於你想看線程情況 可以用pdb調試 試試
沒有像jstack那麼方便直接用的東西,一般來說有幾個方案:
import pudb; pudb.set_interrupt_handler()
,在運作的時候就可以Ctrl-C進入到互動式偵錯環境,易用性還好吧。celery
實作的 install_cry_handler,或是看看 signalhandler,這個在 Python 3.3 自帶了。NOTE: 所有依賴signal的方案,有個缺點就是,POSIX有很多函數會在這些中斷產生時,回傳EINTR,直接導致Python 異常,例如
send
,recv
,read
,write
等等。 。 。我不懂 Java,所以不清楚你想要的是什麼。你是想列印出所有執行緒的呼叫棧嗎?好像不容易的樣子。
我通常是:
python直接用多線程貌似是不行的 因為有個叫GIL的東西 至於你想看線程情況 可以用pdb調試 試試