一.概述

  import threading

   调用 t1 = threading.Thread(target=function , args=(,))

Thread类的实例方法

# join():在子线程完成运行之前,这个子线程的父线程将一直被阻塞。

# setDaemon(True):
'''
将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置为守护线程程序会被无限挂起。 当我们在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程 就分兵两路,分别运行,那么当主线程完成 想退出时,会检验子线程是否完成。如果子线程未完成,则主线程会等待子线程完成后再退出。但是有时候我们需要的是只要主线程 完成了,不管子线程是否完成,都要和主线程一起退出,这时就可以 用setDaemon方法啦''' import threading
from time import ctime,sleep
import time def Music(name): print ("Begin listening to {name}. {time}".format(name=name,time=ctime()))
sleep(3)
print("end listening {time}".format(time=ctime())) def Blog(title): print ("Begin recording the {title}. {time}".format(title=title,time=ctime()))
sleep(5)
print('end recording {time}'.format(time=ctime())) threads = [] t1 = threading.Thread(target=Music,args=('FILL ME',))
t2 = threading.Thread(target=Blog,args=('',)) threads.append(t1)
threads.append(t2) if __name__ == '__main__': #t2.setDaemon(True) for t in threads: #t.setDaemon(True) #注意:一定在start之前设置
t.start() #t.join() #t1.join()
#t2.join() # 考虑这三种join位置下的结果? print ("all over %s" %ctime()) 其他实例方法
Thread实例对象的方法
# isAlive(): 返回线程是否活动的。
# getName(): 返回线程名。
# setName(): 设置线程名。 threading模块提供的一些方法:
# threading.currentThread(): 返回当前的线程变量。
# threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
# threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。

GIL(全局解释器锁)

最新文章

  1. C#中Length和Count的区别(个人观点)
  2. centos系统/etc/sysconfig/目录下无iptables文件
  3. Gym 100646 F Tanks a Lot RMQ
  4. layabox 引擎
  5. [系统开发] FileMaker进销存系统
  6. 初识MVC,MVC里面的基本数据传递
  7. tyvj P1517 飘飘乎居士的乌龟(最大流)
  8. 11.ThinkPHP 3.1.2 连贯操作
  9. improper Advertising identifier [IDFA] Usage. Your app contains the Advertising Identifier [IDFA] AP
  10. ASP.NET网页发布以及相关问题的解决
  11. 【转载】给想要入门渗透的人的忠告——schiz0wcingU
  12. java多线程(2)---生命周期、线程通讯
  13. RN 数据持久化存储服务API
  14. Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门
  15. DIOCP组件(Delphi IOCP)代码阅读之ADO内存表
  16. 微信小程序-点击图片预览
  17. 从零开始,运行一个android例子程序
  18. tyvj1659中中救援队
  19. 提示ORA-01144: File size (13107200 blocks) exceeds maximum of 4194303 blocks 最大4194303 block(转)
  20. centos 安装golang笔记

热门文章

  1. js模拟form提交 导出数据
  2. CLion快捷键设置
  3. sqlserver with 递归用法
  4. Java邮件发送工具类
  5. C# 调用APlayer教程
  6. Joomla 3.0.0 --> 3.4.6-RCE复现
  7. (三)运用Python模块和包
  8. springboot~集成DataSource 与 Druid监控配置
  9. LAMP(六)之以CentOS6自带的rpm包组合安装lamp
  10. 手写数字识别——利用keras高层API快速搭建并优化网络模型