728x90
반응형
(문제)
두개의 조건문이 있습니다.
if A조건:
실헹조건: 10분동안 첫번째 A조건문은 정지
if B조건: # A조건문이 10분간 정지해 있어도 B조건문은 작동됨
실행조건: 10분동안 두번째 B조건문은 정지
위와 같이 두개의 조건문중 A나 B가 정지해도 다른 조건문이 실행되는 구조입니다.
10분 뒤에는 다시 A나 B의 조건문이 작동이 되어야 합니다.
(방법)
import threading
import time
import random
global state
def funcA(low, high):
global state
total = 0
for i in range(low, high):
total += i
if i%10000 == 0:
lock.acquire() # 락을 얻음
print('[A=',i,'] /total=',total)
lock.release() # 락을 해제함
time.sleep(random.randint(1,3))
print("A Subthread = ", total)
def funcB(low, high):
global state
total = 0
for i in range(low, high):
total += i
if i%10000 == 0:
lock.acquire() # 락을 얻음
print('[B=',i,'] /total=',total)
lock.release() # 락을 해제함
time.sleep(random.randint(1,3))
print("B Subthread = ", total)
lock = threading.Lock() # 락 객체를 획득함
tA = threading.Thread(target=funcA, args=(1, 100000))
tB = threading.Thread(target=funcB, args=(1, 100000))
tA.start()
tB.start()
print("Main Thread")

728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : csv 파일을 읽고 지정된 조건의 최개값 구하기 (0) | 2022.11.27 |
|---|---|
| [파이썬] 문제 : csv파일에서 항목 나누고 표시하기 (0) | 2022.11.27 |
| [파이썬] 문제 : csv 파일의 병원 추천 (0) | 2022.11.27 |
| [파이썬] 문제 : 재귀함수 사용한 팩토리얼 구하기 (0) | 2022.11.27 |
| [파이썬] 문제 : 과일명 입력 받아, 많은 수, 적은 수 찾기 (0) | 2022.11.27 |
댓글