最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python控制線程和函數(shù)超時(shí)處理

 更新時(shí)間:2022年06月02日 11:56:58   作者:fanstuck  
這篇文章主要介紹了Python控制線程和函數(shù)超時(shí)處理,文中利用兩種方法進(jìn)行eventlet庫和@func_set_timeout修飾器,文章具體詳細(xì)介紹,需要的小伙伴可以參考一下

前言

在我們使用線程池控制線程運(yùn)行時(shí),或者是寫爬蟲時(shí)不停發(fā)送request獲取地址,都需要我們對(duì)運(yùn)行的線程加以控制。有這樣一種場景,當(dāng)你寫入一條網(wǎng)站請(qǐng)求時(shí),該線程一直請(qǐng)求并沒有回應(yīng)導(dǎo)致線程造成堵塞,浪費(fèi)珍貴的線程資源。當(dāng)你寫入一條錯(cuò)誤的sql查詢語句時(shí),該查詢語句一直運(yùn)行需要花費(fèi)大量時(shí)間,導(dǎo)致其他查詢語句阻塞。遇到如上述情況必須對(duì)線程加以控制,才能使得程序腳本穩(wěn)定性更高。

控制線程運(yùn)行時(shí)間方法有多種:

這里介紹兩種方法,一種是用eventlet庫的方法進(jìn)行,該方法只要進(jìn)行了子程序調(diào)用就失效了。另一種方法是使用@func_set_timeout修飾器,該方法可作用于函數(shù)、線程等一系列子函數(shù),是最方便最簡單高效的方法。這里來進(jìn)行代碼操作演示這兩種方法。

一、Eventlet

該庫可以直接下載:

pip install eventlet
import time
import eventlet#導(dǎo)入eventlet
eventlet.monkey_patch()#引入patch
with eventlet.Timeout(2,False):#設(shè)置超時(shí)時(shí)間為2秒
? ? time.sleep(3)
? ? print('1')
print('2')

我們?cè)O(shè)定睡眠時(shí)間為3秒,超過了2秒,這樣會(huì)導(dǎo)致print('1')這條語句執(zhí)行跳過,直接輸出2:

import time
import eventlet#導(dǎo)入eventlet
eventlet.monkey_patch()#引入patch
with eventlet.Timeout(2,False):#設(shè)置超時(shí)時(shí)間為2秒
? ? time.sleep(1)
? ? print('1')
print('2')

 當(dāng)我們修改time.sleep為1小于2時(shí),并沒有超時(shí),此時(shí)應(yīng)該輸出1、2:

當(dāng)我們想要調(diào)用子程序該函數(shù)是不起作用的。像這樣,該函數(shù)沒有效果,這時(shí)候我們需要使用第二種方法。

二、func-timeout

1.安裝

直接安裝就好了

pip install func-timeout

2.使用

一般是和try except一起用,超時(shí)則扔出錯(cuò)誤。

from func_timeout import func_set_timeout
import func_timeout
@func_set_timeout(1)#設(shè)定函數(shù)超時(shí)執(zhí)行時(shí)間
def task(i):
? ? time.sleep(2)
? ? print(i)
try:
? ? task(1)
except:
? ? print(2)

這時(shí)候sleep時(shí)間超過1應(yīng)該輸出2:

from func_timeout import func_set_timeout
import func_timeout
@func_set_timeout(3)#設(shè)定函數(shù)超時(shí)執(zhí)行時(shí)間
def task(i):
? ? time.sleep(2)
? ? print(i)
try:
? ? task(1)
except:
? ? print(2)

這樣就輸出為1. 

到此這篇關(guān)于Python控制線程和函數(shù)超時(shí)處理的文章就介紹到這了,更多相關(guān)Python控制線程 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pygame游戲之旅 python和pygame安裝教程

    pygame游戲之旅 python和pygame安裝教程

    這篇文章主要為大家詳細(xì)介紹了pygame游戲之旅,分享python和pygame的安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法

    Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法

    今天小編就為大家分享一篇Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 關(guān)于tf.matmul() 和tf.multiply() 的區(qū)別說明

    關(guān)于tf.matmul() 和tf.multiply() 的區(qū)別說明

    這篇文章主要介紹了關(guān)于tf.matmul() 和tf.multiply() 的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 如何理解python對(duì)象

    如何理解python對(duì)象

    在本篇文章里小編給大家分享的是一篇關(guān)于python對(duì)象的理解相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • pycharm使用matplotlib畫圖問題解決方法

    pycharm使用matplotlib畫圖問題解決方法

    Pycharm是一款功能強(qiáng)大的Python集成開發(fā)環(huán)境(IDE),它提供了許多有用的工具和功能,可以幫助開發(fā)人員更輕松地編寫和調(diào)試Python代碼,其中一個(gè)有用的工具是Pycharm如何畫圖,本文給大家介紹在pycharm中使用matplotlib畫圖問題,感興趣的朋友一起看看吧
    2023-11-11
  • Python獲取list中指定元素索引的兩種方法小結(jié)

    Python獲取list中指定元素索引的兩種方法小結(jié)

    本文主要介紹了兩種在Python中獲取列表中指定元素索引的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • python調(diào)用shell的方法

    python調(diào)用shell的方法

    這篇文章主要介紹了python調(diào)用shell的方法,python調(diào)用shell命令的方法有許多種,大家可以參考使用
    2013-11-11
  • Django解決frame拒絕問題的方法

    Django解決frame拒絕問題的方法

    這篇文章主要介紹了Django解決frame拒絕問題的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 一文教會(huì)你用Python獲取網(wǎng)頁指定內(nèi)容

    一文教會(huì)你用Python獲取網(wǎng)頁指定內(nèi)容

    Python用做數(shù)據(jù)處理還是相當(dāng)不錯(cuò)的,如果你想要做爬蟲,Python是很好的選擇,它有很多已經(jīng)寫好的類包,只要調(diào)用即可完成很多復(fù)雜的功能,下面這篇文章主要給大家介紹了關(guān)于Python獲取網(wǎng)頁指定內(nèi)容的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • django admin添加數(shù)據(jù)自動(dòng)記錄user到表中的實(shí)現(xiàn)方法

    django admin添加數(shù)據(jù)自動(dòng)記錄user到表中的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇django admin添加數(shù)據(jù)自動(dòng)記錄user到表中的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評(píng)論

航空| 商洛市| 扶风县| 沂南县| 泸溪县| 麻江县| 盖州市| 五常市| 武宁县| 庆安县| 蒙自县| 泸溪县| 和平县| 毕节市| 拉孜县| 湖北省| 西青区| 蛟河市| 新疆| 南涧| 马龙县| 宣汉县| 长宁区| 乌审旗| 横山县| 亚东县| 松滋市| 靖江市| 周至县| 锡林浩特市| 金山区| 兖州市| 民县| 霍州市| 大邑县| 原平市| 龙井市| 夹江县| 乌什县| 元氏县| 防城港市|