线程:
线程是系统分配给内核的最小单元,线程是进程的一部分。
特点:
1.一个进程可以包含多个线程
2.线程也是一个运行行为,消耗计算机资源
3.一个进程中的所有线程共享这个进程的资源
4.多个线程之间运行互不影响
5.线程的创建和销毁所消耗的资源非常少
6.各个线程也有自己的属性,比如线程id等特征
7.由于线程也需要消耗资源,也有并发并行,所以一个进程内的线程可能会分配到不同的cpu核心,所以其实一个进程可能会消耗多个cpu核心。
线程的其他属性
t.name 线程名称
t.setName() 设置线程名称
t.getName() 获取线程名称
t.is_alive() 查看线程是否在生命周期
t.daemon 设置主线程和分支线程的退出关系
t.setDaemon() 设置daemon属性值
t.isDaemon() 查看daemon属性值
daemon为True时主线程退出分支线程也退出。要在start前设置,通常不和join一起使用。
python使用线程
--基本语法
''' 线程基本使用 步骤:基本同process 1.封装线程函数 2.创建线程对象 3.启动线程 4.回收线程 ''' from threading import Thread from time import sleep import os a = 1 def music(): #分支线程 for i in range(3): sleep(2) print('播放:播放黄河大合唱,pid=%s'%os.getpid()) global a #引用全局变量a print('线程里a=',a) a=10000 #创建线程对象 #主线程 t = Thread(target=music) t.start() t.join() print(os.getpid()) print('主线程a=',a)
线程类
from threading import Thread from time import sleep,ctime class MyThtread(Thread): def __init__(self,target=None,args=(),kwargs={}): super().__init__() #由于自己也有属性,为了避免自己的属性覆盖父类的属性,重新加载父类的__init__属性 print(kwargs) self.target = target self.args = args self.kwargs = kwargs def run(self): #自己写类的run方法 print(*self.args) self.target(*self.args,**self.kwargs) def Player(sec,song): for i in range(3): print('Playing %s : %s'%(song,ctime())) sleep(sec) t = MyThtread(target=Player,args=(3,),kwargs={'song':'凉凉'}) t.start() t.join()
标签:target,thread,--,self,args,线程,kwargs,print From: https://www.cnblogs.com/powfu/p/16901385.html