게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
파이썬] 특정 블록에서 다른 스레드로 스위칭을 막을 수 없나요?
게시물ID : programmer_8139짧은주소 복사하기
작성자 : 리습
추천 : 1
조회수 : 1686회
댓글수 : 4개
등록시간 : 2015/02/11 16:22:02
import threading, time

def print_1_to_10():
    for i in range(10):
        print(i)
        time.sleep(1)
        
def interrupt():
    while(True):
        print("Int")
        time.sleep(1)

th1 = threading.Thread(target=inturrupt)
th2 = threading.Thread(target=print_1_to_10)
th1.start()
th2.start()

위 코드의 결과는  0 Int Int 1 Int 2 Int 3  ...  이며
제가 원하는 결과는 Int* 0 1 2 ...7 8 9 int*   입니다.

별다른 Flag 변수를 선언하지 않고, 특정 블록 내지 (가급적이면) 함수가 실행되는 동안 다른 스레드로의 Context switching이 발생하지 않거나 실행되지 않도록 하는 방법을 찾아보는 중입니다. 하지만, Global 객체에 대한 lock은 있지만 제가 원하는것은 영 나오지 않아 질문 올려봅니다 ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호