‘‘‘ @Time : 2020/3/29 14:30 @Author : laolao @FileName: 2.py ‘‘‘ import threading def thread_job(): print("This is an added Thread,number is %s" % threading.current_thread()) def main(): #查看现在有几个线程被激活 # [ < _MainThread(MainThread, started 17940) >]:默认的主程序的线程 print(threading.active_count()) # 查询被激活的线程都叫什么 print(threading.enumerate()) # 显示当前运行的程序是属于那个线程 print(threading.current_thread()) # 定义一个线程,括号里面写让线程执行的工作 added_thread = threading.Thread(target=thread_job) added_thread.start() # 执行线程 if __name__ == ‘__main__‘: main()
‘‘‘ @Time : 2020/3/29 14:30 @Author : laolao @FileName: 2.py ‘‘‘ import threading import time def thread_job(): print(‘我是T1线程:T1 start‘) for i in range(10): time.sleep(0.1) print("我是T1线程:T1 finish") def T2_job(): print(‘我是T2线程:T2 start‘) print("我是T2线程:T2 finish") def main(): ‘‘‘ target:让线程执行的工作 name:为这个线程取的名字 :return: ‘‘‘ added_thread = threading.Thread(target=thread_job,name=‘T1‘) thread2 = threading.Thread(target=T2_job,name=‘T2‘) added_thread.start() # 执行线程 thread2.start() print(‘我跟T1线程同步执行‘) # 如果希望自己的代码在线之后完成用join() thread2.join() print(‘我在T2线程执行后执行‘) if __name__ == ‘__main__‘: main()
‘‘‘ @Time : 2020/3/29 14:30 @Author : laolao @FileName: 2.py ‘‘‘ import threading import time from queue import Queue def job(l,q): for i in range(len(l)): l[i]=l[i]**2 q.put(l) def multithreading(): q = Queue() threads = [] # 线程列表 data = [[1,2,3],[3,4,5],[4,4,4],[5,5,5]] for i in range(4): ‘‘‘ 定义4个线程,并用列表保存起来 ‘‘‘ t = threading.Thread(target=job,args=(data[i],q)) t.start() threads.append(t) for thread in threads: ‘‘‘ 把每一线程都一次加载到主线程中 ‘‘‘ thread.join() result=[] for _ in range(4): result.append(q.get()) print(result) if __name__ == ‘__main__‘: multithreading()
‘‘‘ @Time : 2020/3/29 14:30 @Author : laolao @FileName: 2.py ‘‘‘ import threading import time from queue import Queue def job1(): global A lock.acquire() for i in range(10): A+=1 print(‘job2‘,A) lock.release() def job2(): global A lock.acquire() # 设定锁 ‘‘‘ 锁上后job1就不会接触到这一段 ‘‘‘ for i in range(10): A+=10 print(‘job2‘,A) lock.release() # 释放锁 if __name__ == ‘__main__‘: A=0 lock = threading.Lock() t1 = threading.Thread(target=job1) t2 = threading.Thread(target=job2) t1.start() t2.start() t1.join() t2.join()
原文:https://www.cnblogs.com/chrysanthemum/p/12592648.html