1. 程式人生 > >python 學習筆記(二十二)

python 學習筆記(二十二)

# coding=utf8
__author__ = 'liwei'

import threading ,time,random
'多執行緒的例子'
def loop():
    print('threading is %s runing'% threading.current_thread().name)
    n=0
    while n<5:
        n=n+1
        start=time.time()
        time.sleep(random.random()*2)
        stop=time.time()
        print('thread is %s >>> %s'% (threading.current_thread().name,(stop-start)))
    print('threading is %s ends.'% threading.current_thread().name)

print('thread is %s runing...'% threading.current_thread().name)
t=threading.Thread(target=loop,name='LiweiThread')
t.start()
t.join()
print('threading is %s ends.' % threading.current_thread().name)

'ThreadLocal應用,任意讀寫而互不干擾,也不用管理鎖的問題,ThreadLocal內部會處理。'

thread_local=threading.local()

def process_student():
    print('hello, %s (in %s)'% (thread_local.student,threading.current_thread().name))

def process_thread(name):
    thread_local.student=name
    process_student()

t1 = threading.Thread(target= process_thread,args=('Liwei',),name='Thread-A')
t2 = threading.Thread(target= process_thread,args=('Lizhao,'),name='Thread-B')

t1.start()
t2.start()
t1.join()
t2.join()