# -*- coding: UTF-8 -*- ''' import _thread import time # 为线程定义一个函数 def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print ("%s: %s" % ( threadName, time.ctime(time.time()) )) # 创建两个线程 try: _thread.start_new_thread( print_time, ("Thread-1", 2, ) ) _thread.start_new_thread( print_time, ("Thread-2", 4, ) ) except: print ("Error: 无法启动线程") while 1: pass ''' """ import threading import time def thread_job(): # print(f"This Thread_job num: {threading.current_thread()}") print('T1 Start\n') for i in range(10): time.sleep(0.2) print('T1 END\n') def thread_job2(): print('T2 Start\n') print('T2 Finish\n') def main(): added_thread = threading.Thread(target=thread_job,name='T1') added_thread2 = threading.Thread(target=thread_job2,name="T2") added_thread.start() added_thread2.start() added_thread2.join() added_thread.join() print("ALL Done") # print(threading.active_count()) # print(threading.enumerate()) # print(threading.current_thread()) """ # import threading # from queue import Queue # def job(l,q): # for i in range(len(l)): # l[i] = l[i] **2 # q.put(l) # def mutl_threading(): # q = Queue() # threads = [] # data = [[1,2,3],[3,4,5],[5,6,7],[7,7,8]] # for i in range(4): # t = threading.Thread(target=job,args=(data[i],q)) # t.start() # threads.append(t) # for thread in threads: # thread.join() # results = [] # for _ in range(4): # results.append(q.get()) # print(results) # if __name__ == '__main__': # mutl_threading() import threading def job1(): global A global lock # lock.acquire() for i in range(10): A += 1 print(f'job1 {A}\n') # lock.release() def job2(): global A global lock lock.acquire() for i in range(10): A += 10 print('job2\t',A,'\n') 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()