Python 의 하위 스 레 드 와 하위 프로 세 스 는 어떻게 수 동 으로 끝 납 니까?
하위 스 레 드 를 끝 내 는 방법:
이것 은 다른 큰 신 을 옮 기 는 코드 입 니 다.저 는 원 리 를 모 릅 니 다.어차피 가 져 오기 주 의 는 잠시 결점 을 발견 하지 못 했 으 니 먼저 사용 하 세 요.
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()
다음은 하위 프로 세 스 를 끝 내 는 방법 입 니 다:
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(" ")
break
sleep(1)
if __name__ == '__main__':
Air()
클래스 를 사용 하면 어떻게 쓰 는 지,하위 프로 세 스 나 하위 스 레 드 를 끝 내 려 면 프로 세 스 대상 이나 스 레 드 대상 을 가 져 가 야 하지만 클래스 에 서 는 클래스 속성 을 만 드 는 방식 을 실현 하지 못 하고 self 를 사용 합 니 다.×××다른 방법 에서 호출 할 수 있 습 니 다.이 럴 때 클래스 속성 list 를 만 든 다음 에 하위 프로 세 스 나 하위 스 레 드 를 만 든 후에 대상 을 이 list 에 할당 한 다음 에 클래스 의 다른 방법 에서 이 list 의 요 소 를 호출 하면 하위 프로 세 스 나 하위 스 레 드 의 이미 지 를 얻 을 수 있 습 니 다.예 를 들 면:
def startss(self,a1,b1,c1,under,rough,blue,among):
#
p1=threading.Thread(target=self.line01,args=(a1,b1,under,rough,)) # ,
p2=threading.Thread(target=self.line02,args=(a1,c1,under,blue,))
p3=Process(target=self.Process01,args=(under,rough,blue,)) #
#among list
among.append(p1)
among.append(p2)
among.append(p3)
#
p1.start()
p2.start()
#
p3.start()
참고 자료:https://www.jb51.net/article/185867.htmpython 다 중 프로 세 스 가 하위 프로 세 스 를 종료 하거나 다시 시작 하 는 방법
파 이 썬 의 하위 스 레 드 와 하위 프로 세 스 가 어떻게 수 동 으로 끝 났 습 니까?의 글 은 여기까지 소개 되 었 습 니 다.더 많은 Python 의 하위 스 레 드 와 하위 프로 세 스 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.