python死鎖案例 Python 多執行緒死鎖

2021-10-11 13:14:32 字數 848 閱讀 1507

場景是這樣的:開啟多個執行緒訪問外部 api ,過一段時間,發現所有執行緒死鎖。

環境: python2.6.7 centos7.1 urllib2 , suse 下無此問題。

dump 如下:

thread 161 (thread 0x7f80de4e9700 (lwp 12459)):

#0 0x00007f80e4cacb6c in __lll_lock_wait_private () from /lib64/libc.so.6

#1 0x00007f80e4cc2efd in _l_lock_746 () from /lib64/libc.so.6

#2 0x00007f80e4cc2cb5 in __check_pf () from /lib64/libc.so.6

#3 0x00007f80e4c88f69 in getaddrinfo () from /lib64/libc.so.6

#4 0x00007f80e12faa3c in socket_getaddrinfo (self=, args=) at /home/basic/python-2.7.6/modules/socketmodule.c:4198

#5 0x00000000004b5726 in call_function (oparg=, pp_stack=0x7f80de4e6b30) at python/ceval.c:4021

#6 pyeval_evalframeex ([email protected]=0x7f7fa403c980, [email protected]=0) at python/ceval.c:2666

看上去是 getaddrinfo 引發的死鎖,不知道大家沒有遇到這個坑,請大家幫忙給些建議,謝謝!

python死鎖案例 Python執行緒 死鎖

死鎖產生的4個必要條件 1 互斥 乙個資源同一時刻只允許乙個執行緒進行訪問。2 占有未釋放 乙個執行緒占有資源,且沒有釋放資源。3 不可搶占 乙個已經占有資源的執行緒無法搶占到其他執行緒擁有的資源。4 迴圈等待 兩個或者兩個以上的執行緒,本身擁有資源,不釋放資源,並且同時嘗試獲得其他執行緒所持有的資...

死鎖案例分析

死鎖的產生以及解決辦法,看 分析,注意裡邊的注釋,自行執行。package thread 模擬買票 author yhl class thread02 implements runnable else 同步 塊 public void sale catch interruptedexception ...

死鎖的案例

死鎖就是當有兩個或兩個以上的執行緒都獲得對方的資源,但彼此有不肯放開,處於僵持狀態,此時便造成了死鎖 package cn.et.deadlock public class deadlock implements runnable catch interruptedexception e synch...