| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- # -*- 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()
|