首页 > 其他分享 >线程--thread

线程--thread

时间:2022-11-17 23:12:37浏览次数:34  
标签:target thread -- self args 线程 kwargs print

线程:

线程是系统分配给内核的最小单元,线程是进程的一部分。

特点:

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

相关文章

  • chrome 消息队列
    渲染进程微队列(最高优先级),如异步请求交互队列(高优先级),如点击事件延时队列(中优先级),如setTimeout//eg.functiona(){console.log(1);Promise.resolve......
  • jmeter参数化----绝对路径&相对路径
    绝对路径:就是文件存在的路径线程组--->添加--->CSV数据文件设置,文件名选择文件所在绝对路径地址查看响应结果 相对路径:指数据文件(bat/txt/csv)相对于当前执行的.jmx......
  • 观察者模式
    被观察者usingUnityEngine;//声明一个委托publicdelegatevoidTesk();//老板publicclassBoss:MonoBehaviour{//创建一个委托publicstaticTes......
  • 灰鸽子木马特征值免杀
    目录木马特征值免杀一.木马特征值免杀0x01.灰鸽子配置生成木马0x02.使用MyCCL复合特征码定位器反复缩小目标进行定位0x03.直到定位到很小的区间0x04.用工具将文件偏移......
  • windows--cmake与c++的使用教程(10)
    1概述本文基于前文环境本节目标:复用cmake脚本文件2编写复用脚本2.1前言多个项目之间,很多cmake设置大相径庭。比如修改输出路径、编写适用与自己的宏或者函数......
  • python基础语法知识
    1、多组输入没有结束标志的两种表示形式#method1:try:whileTrue:#代码exceptEOFError:pass #method2:whileTrue:try:#代码......
  • 3. Maven中坐标
    #使用三个向量在Maven仓库中唯一定位到一个jar包:##groupId:公司或组织域名的倒叙,通常也会加上项目名称,如:com.atguigu.maven##artifactId:模块名称,将来作为Maven工程的工......
  • 基于微信小程序的疫情核酸预约系统设计与实现-计算机毕业设计源码+LW文档
    小程序开发说明开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9......
  • 外汇交易中周末不能交易,为什么行情还在波动?ForexClub给您解惑
    很多投资人在周末的时候,登录自己的外汇交易平台,发现不能进行交易,但是行情还在波动,所以就有这样的疑问?下面就让ForexClub给您解惑。首先这里可以很明确的告诉大家,......
  • 【书籍分享】Java 从入门到精通 第5版 明日科技 高清文字版pdf 下载
    自取:https://url03.ctfile.com/f/24333903-727283519-6e30ef?p=5831【访问密码:5831】,进入下载页面,选择【普通下载】......