线程

Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。

 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 __author__ = 'yinjia'
 4 
 5 
 6 import threading,time
 7 
 8 def show(arg):
 9     time.sleep(2)
10     print('线程: ' + str(arg))
11 
12 for i in range(5):
13     t = threading.Thread(target=show,args=(i,))
14     t.start()

如上述代码创建了5个线程,target指向函数,arges参数传递数值。

  • 其它方法:
  1. start 线程准备就绪,等待CPU调度
  2. setName 为线程设置名称
  3. getName 获取线程名称
  4. setDaemon 设置为后台线程或前台线程(默认)。如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕后,后台线程不论成功与否,均停止;如果是前台线程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台线程也执行完成后,程序停止
  5. join 逐个执行每个线程,执行完毕后继续往下执行,该方法使得多线程变得无意义
  6. run 线程被cpu调度后自动执行线程对象的run方法
  • setName\getName使用方法
 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 __author__ = 'yinjia'
 4 
 5 
 6 import threading,time
 7 
 8 def test(i):
 9     print("线程:%s" %str(i))
10     time.sleep(2)
11 
12 for i in range(2):
13     t = threading.Thread(target=test,args=(i,))
14     t.start()
15     t.setName("我的线程: {0}".format(str(i)))
16     print(t.getName())
17 
18 运行结果:
19 线程:0
20 我的线程: 0
21 线程:1
22 我的线程: 1
 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 __author__ = 'yinjia'
 4 
 5 
 6 import threading,time
 7 
 8 class MyThread(threading.Thread):
 9     def __init__(self,num):
10         threading.Thread.__init__(self)
11         self.num = num
12 
13     def run(self):
14         print("running thread:%s" % self.num)
15         time.sleep(2)
16 
17 if __name__ == '__main__':
18     for i in range(2):
19         t1 = MyThread(i)
20         t1.start()
21         t1.setName("我的线程: {0}".format(str(i)))
22         print(t1.getName())
23 
24 运行结果:
25 running thread:0
26 我的线程: 0
27 running thread:1
28 我的线程: 1
自定义线程类

相关文章:

  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-22
  • 2021-07-15
  • 2021-10-15
  • 2022-01-24
相关资源
相似解决方案