Python之路——多线程

Thread

 1 # from threading import Thread
 2 # import time
 3 # import os
 4 # def func(i):
 5 #     time.sleep(1)
 6 #     print('helloworld',i,os.getpid())
 7 # thread_lst = []
 8 # for i in range(10):
 9 #     t = Thread(target=func,args=(i,))
10 #     t.start()
11 #     thread_lst.append(t)
12 # [t.join() for t in thread_lst]
13 # print(os.getpid())

定义自己的Thread类

 1 # from threading import Thread
 2 # import time,os
 3 # n = 0
 4 # class MyThread(Thread):
 5 #     # n = 0
 6 #     # def __init__(self):
 7 #     #     MyThread.n += 1
 8 #     def run(self):
 9 #         time.sleep(1)
10 #         print('helloworld',n,os.getpid())
11 #
12 # l = []
13 #
14 # def func(i,l):
15 #     l.append(i)
16 #
17 # for i in range(20):
18 #     t = MyThread()
19 #     t.start()

等待开启的线程执行完

 1 # from threading import Thread
 2 # import time,os,random
 3 #
 4 # def func(i):
 5 #     time.sleep(random.random())
 6 #     print('hello %s'%i,os.getpid())
 7 #
 8 # tl = []
 9 # for i in range(10):
10 #     t = Thread(target=func,args=(i,))
11 #     t.start()
12 #     tl.append(t)
13 #
14 # [t.join() for t in tl]

有段thread的一些属性

 1 # from threading import Thread
 2 # import time,os,random
 3 #
 4 # class MyThread(Thread):
 5 #     count = 0
 6 #     def __init__(self,arg1,arg2):
 7 #         super().__init__()
 8 #         self.arg1 = arg1
 9 #         self.arg2 = arg2
10 #     def run(self):
11 #         MyThread.count += 1
12 #         time.sleep(random.random())
13 #         print('%s,%s,%s,%s'%(self.arg1,self.arg2,self.name,os.getpid()))
14 # for i in range(10):
15 #     t = MyThread(i,i*'*')
16 #     t.start()
17 # print(t.count)  # 计算开启的线程数量
 1 from threading import Thread
 2 import threading
 3 import time,os,random
 4 def func(i):
 5     # print(len(threading.enumerate()))
 6     time.sleep(random.random())
 7     print(i,threading.current_thread().name,threading.current_thread().ident)
 8 for i in range(10):
 9     t = threading.Thread(target=func,args=(i,))
10     t.start()
11 # print('main:',len(threading.enumerate())) # # 返回正在运行着的线程列表
12 time.sleep(random.random())
13 # print('main:',len(threading.enumerate()))
14 print(threading.active_count())

 

posted @ 2018-02-06 16:38  liuyankui163  阅读(115)  评论(0编辑  收藏  举报