파이썬 제어문들 중에 이런 건 없나요?
조회수 409회
제어문 중에서
여러 가지 조건들을 거쳐서 그 조건에 맞게 각 각 명령을 실행하는게
if문 elif문 else 문이잖아요
그런데 조건 하나를 가지고 명령을 실행하는데,
순서에 따라서 실행하는거요
이렇게 보면 매우 간단한데 ,
중간에 조건에 맞지 않으면 거기서 함수를 종료하는 그런 제어문? 같은걸 원하는데요
예를 들면
import time
from threading import Thread
def func1()
global off
while off:
1. 모라모라
2. 모라모라
3. 모라모라
4. 모라모라
t1=Thread(target=func1)
t1.start()
time.sleep(10)
off=0
예를 들어 이런 비스무리한 코드가 있을때요.
10초후에 off의 값이 바뀌잖아요?
그럼 func1 함수는 종료가 되겠죠?
여기서 제가 원하는건 딱 off의 값이 변하는 순간
저 func1 함수의 1번이든 2번이든 중간에 끊기는거요
보통은 4번까지 실행 후에 종료가 되잖아요
이게 노다가로 하나하나 if문으로 지정을 하면되긴하는데
간단한 방법이 있을 거 같아서요
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
간단한 방법이라면 off의 값을 변경하는 대신 쓰레드를 죽이는 방법이 있을 것 같네요.
다만, 쓰레드는 죽일 수 없기에 위와 같은 경우라면 동일한 동작을 수행하도록 multiprocessing을 사용하였습니다.
import time import multiprocessing def func1(): while True: print(1) print(2) print(3) print(4) print(5) print(6) if __name__ == '__main__': multiprocessing.freeze_support() t1=multiprocessing.Process(target=func1) t1.start() time.sleep(1) t1.terminate()
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력