Using a global variable with a thread
How do I share a global variable with thread?
My Python code example is:
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()
I don't know how to get the two threads to share one variable.
You just need to declare
a as a global in
thread2, so that you aren't modifying an
a that is local to that function.
def thread2(threadname): global a while True: a += 1 time.sleep(1)
thread1, you don't need to do anything special, as long as you don't try to modify the value of
a (which would create a local variable that shadows the global one; use
global a if you need to)>
def thread1(threadname): #global a # Optional if you treat a as read-only while a < 10: print a