Python Global Variable with thread
Question: 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.


Answer: 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)
    

In `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
    

