欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python的子線程和子進(jìn)程是如何手動(dòng)結(jié)束的?

 更新時(shí)間:2021年06月24日 11:14:20   作者:l198738655  
今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著如何手動(dòng)結(jié)束Python的子線程和子進(jìn)程展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下

如何結(jié)束Python的子線程和子進(jìn)程

結(jié)束子線程的方法:

這個(gè)是搬運(yùn)其他大神的代碼,鄙人也不知道原理,反正拿來(lái)主義,暫時(shí)沒(méi)發(fā)現(xiàn)什么缺點(diǎn),先用著再說(shuō)。

import inspect
import ctypes
import threading
from time import sleep
 
 
def serial_read():
 
    while True:
 
        print("春哥純爺們!")
 
        sleep(1)
 
 
 
def _async_raise(tid, exctype):
    """raises the exception, performs cleanup if needed"""
    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:
        # """if it returns a number greater than one, you're in trouble,
        # and you should call it again with exc=NULL to revert the effect"""
        ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)
        raise SystemError("PyThreadState_SetAsyncExc failed")
 
 
def stop_thread(thread):
    _async_raise(thread.ident, SystemExit)
 
 
def Air():
 
    ords=0
 
    myThread = threading.Thread(target=serial_read)
 
    myThread.start()
 
    while True:
 
 
        ords+=1
 
        if ords==10:
 
            stop_thread(myThread)
            print("停止子線程")
            break
 
 
        sleep(1)
 
 
if __name__ == '__main__':
 
    Air()

下面是結(jié)束子進(jìn)程的方法:

import inspect
import ctypes
from time import sleep
from multiprocessing import Process
 
 
def serial_read():
 
    while True:
 
        print("春哥純爺們!")
 
        sleep(1)
 
 
def Air():
 
    ords=0
 
    myThread = Process(target=serial_read)
 
    myThread.start()
 
    while True:
 
 
        ords+=1
 
        if ords==10:
 
            myThread.terminate()
            print("停止子進(jìn)程")
            break
 
 
        sleep(1)
 
 
if __name__ == '__main__':
 
    Air()

這里說(shuō)一下如果用類(lèi)的話要如何寫(xiě),想結(jié)束子進(jìn)程或者子線程就需要拿到進(jìn)程對(duì)象或者線程對(duì)象,但是類(lèi)中沒(méi)辦法實(shí)現(xiàn)創(chuàng)建一個(gè)類(lèi)屬性的方式然后用self.×××的方式來(lái)在其他類(lèi)方法中調(diào)用,這時(shí)候就創(chuàng)建一個(gè)類(lèi)屬性list,然后創(chuàng)建好子進(jìn)程或者子線程后把對(duì)象賦值給這個(gè)list,再在類(lèi)的其他方法中調(diào)用這個(gè)list中的元素,就拿到了子進(jìn)程或者子線程的對(duì)象了。

例如:

def startss(self,a1,b1,c1,under,rough,blue,among):
 
        # 創(chuàng)建新線程
        p1=threading.Thread(target=self.line01,args=(a1,b1,under,rough,)) #必須加,號(hào) 
        p2=threading.Thread(target=self.line02,args=(a1,c1,under,blue,))
        p3=Process(target=self.Process01,args=(under,rough,blue,)) #計(jì)算進(jìn)程
 
        #among是類(lèi)屬性list容器
 
        among.append(p1)
        among.append(p2)
        among.append(p3)
 
        # 開(kāi)啟新線程
        p1.start()
        p2.start()
 
        #開(kāi)啟計(jì)算用進(jìn)程
        p3.start()

參考資料:http://www.dbjr.com.cn/article/185867.htm

python 多進(jìn)程如何終止或重啟子進(jìn)程

到此這篇關(guān)于Python的子線程和子進(jìn)程是如何手動(dòng)結(jié)束的?的文章就介紹到這了,更多相關(guān)Python的子線程和子進(jìn)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python爬蟲(chóng)獲取基金列表

    Python爬蟲(chóng)獲取基金列表

    這篇文章主要介紹了Python爬蟲(chóng)獲取基金列表,python爬蟲(chóng)用來(lái)收集數(shù)據(jù)是最直接和常用的方法,可以使用python爬蟲(chóng)程序獲得大量的數(shù)據(jù),下文更多相關(guān)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法示例

    Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)兩個(gè)list求交集,并集,差集的方法,結(jié)合實(shí)例形式分析了Python使用intersection、union及difference方法實(shí)現(xiàn)兩個(gè)集合list的交集、并集與差集操作技巧,需要的朋友可以參考下
    2018-08-08
  • pymilvus?offset參數(shù)不生效解決示例

    pymilvus?offset參數(shù)不生效解決示例

    這篇文章主要為大家介紹了pymilvus?offset參數(shù)不生效解決示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Python使用conda如何安裝requirement.txt的擴(kuò)展包

    Python使用conda如何安裝requirement.txt的擴(kuò)展包

    這篇文章主要介紹了Python使用conda如何安裝requirement.txt的擴(kuò)展包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python爬蟲(chóng)模擬登錄帶驗(yàn)證碼網(wǎng)站

    Python爬蟲(chóng)模擬登錄帶驗(yàn)證碼網(wǎng)站

    這篇文章主要介紹了Python爬蟲(chóng)模擬登錄帶驗(yàn)證碼網(wǎng)站的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 關(guān)于Qt6中QtMultimedia多媒體模塊的重大改變分析

    關(guān)于Qt6中QtMultimedia多媒體模塊的重大改變分析

    如果您一直在 Qt 5 中使用 Qt Multimedia,則需要對(duì)您的實(shí)現(xiàn)進(jìn)行更改。這篇博文將嘗試引導(dǎo)您完成最大的變化,同時(shí)查看 API 和內(nèi)部結(jié)構(gòu)
    2021-09-09
  • Python基于xlrd模塊處理合并單元格

    Python基于xlrd模塊處理合并單元格

    這篇文章主要介紹了Python基于xlrd模塊處理合并單元格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Pycharm連接遠(yuǎn)程服務(wù)器并實(shí)現(xiàn)遠(yuǎn)程調(diào)試的實(shí)現(xiàn)

    Pycharm連接遠(yuǎn)程服務(wù)器并實(shí)現(xiàn)遠(yuǎn)程調(diào)試的實(shí)現(xiàn)

    這篇文章主要介紹了Pycharm連接遠(yuǎn)程服務(wù)器并實(shí)現(xiàn)遠(yuǎn)程調(diào)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python if語(yǔ)句知識(shí)點(diǎn)用法總結(jié)

    Python if語(yǔ)句知識(shí)點(diǎn)用法總結(jié)

    本篇文章給python初學(xué)者總結(jié)了關(guān)于Python之if語(yǔ)句的相關(guān)用法以及知識(shí)點(diǎn)總結(jié),跟著學(xué)習(xí)下吧。
    2018-06-06
  • 詳解Python如何實(shí)現(xiàn)批量為PDF添加水印

    詳解Python如何實(shí)現(xiàn)批量為PDF添加水印

    我們有時(shí)候需要把一些機(jī)密文件發(fā)給多個(gè)客戶,為了避免客戶泄露文件,會(huì)在機(jī)密文件中添加水印。本文將利用Python實(shí)現(xiàn)批量為PDF添加水印,需要的可以參考一下
    2022-05-05

最新評(píng)論