中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Python多線程退出控制的方法-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)Python多線程退出控制的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的成都IDC機(jī)房托管服務(wù)

日常前言

最近接 到一個(gè)搶票的爬蟲外包,那個(gè)網(wǎng)站及其之撈,訪問(wèn)購(gòu)票地址竟然還要排隊(duì),在購(gòu)票高峰臨時(shí)升一下服務(wù)器配置不行嗎…沒(méi)辦法,甲方爸爸的要求還得做啊,其中一個(gè)障礙便是目標(biāo)網(wǎng)站的后端限制了訪問(wèn)頻次,俗話說(shuō):“上有政策,下有對(duì)策?!?立刻想到了多線程 + 多代理的方式進(jìn)行訪問(wèn)。

Python多線程退出控制的方法

但此時(shí)問(wèn)題便來(lái)了,多代理還好說(shuō),再寫個(gè)爬蟲爬一堆下來(lái)就好,多線程可就麻煩多了,多線程一旦發(fā)出去了,基本等同于失控的狀態(tài),你無(wú)法去結(jié)束或者是重啟一個(gè)線程,最多只能是獲取線程的信息,沒(méi)有實(shí)際的控制權(quán),而且Python官方也沒(méi)有提供相應(yīng)的結(jié)束函數(shù)。那么接下來(lái),讓我們來(lái)好好聊聊解決這個(gè)問(wèn)題的思路。

單線程的結(jié)束

說(shuō)實(shí)話,會(huì)百度在程序世界是一個(gè)優(yōu)秀的習(xí)慣,不然怎么會(huì)有這么一張表情包呢

Python多線程退出控制的方法

但是百度這一次卻不盡人意,搜了很久,結(jié)果不盡人意,基本上所有的搜索結(jié)果都告訴我只有結(jié)束單個(gè)線程的方法,我也試過(guò)循環(huán)使用百度的結(jié)束函數(shù),但最終都只能是結(jié)束的當(dāng)前的這一個(gè)線程,無(wú)法達(dá)到目標(biāo)。

貼一段搜到的單線程結(jié)束代碼示例

def _async_raise(tid, exctype):
 tid = ctypes.c_long(tid)
 if not inspect.isclass(exctype):
  exctype = type(exctype)
 res = ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, ctypes.py_object(exctype))
 if res == 0:
  raise ValueError("invalid thread id")
 elif res != 1:
  ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)
  raise SystemError("PyThreadState_SetAsyncExc failed")
  
def stop_thread(thread):
 _async_raise(thread.ident, SystemExit)

文章標(biāo)題:Python多線程退出控制的方法-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article28/dpepcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)靜態(tài)網(wǎng)站、網(wǎng)站改版網(wǎng)站建設(shè)、面包屑導(dǎo)航網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)
微山县| 连城县| 汝州市| 明光市| 工布江达县| 丹棱县| 黔西| 惠东县| 日照市| 大悟县| 轮台县| 游戏| 寻乌县| 海淀区| 宝鸡市| 东阿县| 绥阳县| 临西县| 巴马| 柘城县| 鹤岗市| 华蓥市| 辰溪县| 丰都县| 三河市| 科技| 托克逊县| 康乐县| 三原县| 浏阳市| 洛宁县| 沛县| 阳山县| 轮台县| 东山县| 玛纳斯县| 弥勒县| 五指山市| 纳雍县| 会泽县| 安宁市|