반응형
스레드와 전역 변수를 어떻게 공유합니까?
내 Python 코드 예는 다음과 같습니다.
from threading import Thread
import time
a = 0 #global variable
def thread1(threadname):
#read variable "a" modify by thread 2
def thread2(threadname):
while 1:
a += 1
time.sleep(1)
thread1 = Thread( target=thread1, args=("Thread-1", ) )
thread2 = Thread( target=thread2, args=("Thread-2", ) )
thread1.join()
thread2.join()
두 스레드가 하나의 변수를 공유하도록하는 방법을 모르겠습니다.
해결 방법
thread2
에서 전역으로 a
를 선언하면 해당 함수에 로컬 인 a
를 수정하지 않습니다.
def thread2(threadname):
global a
while True:
a += 1
time.sleep(1)
thread1
에서는 a
의 값을 수정하지 않는 한 특별한 작업을 수행 할 필요가 없습니다. 필요한 경우 global a
사용)>
def thread1(threadname):
#global a # Optional if you treat a as read-only
while a < 10:
print a
참조 페이지 https://stackoverflow.com/questions/19790570
반응형
'파이썬' 카테고리의 다른 글
파이썬 Django REST Framework serializer 필드 필수 = false (0) | 2021.01.01 |
---|---|
파이썬 How to stop/terminate a python script from running? (0) | 2021.01.01 |
파이썬 How to filter numpy array by list of indices? (0) | 2021.01.01 |
파이썬 NameError : 전역 이름 'myExample2'가 정의되지 않았습니다. # 모듈 (0) | 2021.01.01 |
파이썬 Pandas DataFrame으로 일일 수익 계산 (0) | 2021.01.01 |
댓글