首页 > 其他分享 >10月31日 开启子线程的两种方式

10月31日 开启子线程的两种方式

时间:2023-10-31 16:22:06浏览次数:29  
标签:__ 10 Thread 31 开启 线程 print import

目录

开启子线程的两种方式

第一种方式

按照进程的方式开启只是将模块换了一下,

以函数为例子

代码如下

##开启方式1
from threading import Thread#这里将threading包里面的Thread模块导入
import time
def task():
    print('子线程start')
    time.sleep(2)
    print('子线程end')



if __name__ == '__main__':
    t = Thread(target=task)#将开启的
    t.start()#告诉操作系统开一个线程

    print('主线程')

这个代码将模块换了一个下,整体和进程的格式以及使用差不多,这就来体现一下它的不同点以及相同点

##开启方式1
from threading import Thread#这里将threading包里面的Thread模块导入
import time
def task(xulie):
    print(f'子线程{xulie}start')
    time.sleep(2)
    print(f'子线程{xulie}end')



if __name__ == '__main__':
    t = Thread(target=task,args=('第一',))#给要打开的子线程的名名字赋值
    t.start()#告诉操作系统开一个线程

    print('主线程')

相同点:就是可以按照给子进程赋名字的方法,给开启的子线程也进行名字的赋值,同理其它的传参也可以按照子进程来使用

不同点:子线程和主线程会同时执行,这是因为子线程的执行不需要开辟内存空间,所以比较快。然后进程里的子进程需要等操作系统给它开内存空间所以慢

结果如图

第二种方式

也是和进程的差不多

这里以类为例子

代码如下

# 开启方式二(类)
from threading import Thread
import time


class Myt(Thread):
    def run(self):
        print('子线程start')
        time.sleep(2)
        print('子线程end')

t = Myt()
t.start()
print('主线程')

这个代码里面没有使用全局调用是因为,线程不会有进程的问题,在windows下使用Process会出现无限递归导入的问题,但是Thread不会出现这个问题,所以用不用全局调用问题不大

结果如图

标签:__,10,Thread,31,开启,线程,print,import
From: https://www.cnblogs.com/slzjb/p/17800504.html

相关文章

  • 电脑间共享文件夹传输(Win10和Win11皆可)
    电脑间共享文件夹传输笔者自己是在笔记本和台式之间传输,为了保证两台电脑处在同一局域网下,可以选择连接同一Wifi或使用手机热点更改所连Wifi网络类型为专用两台电脑的Wifi网络类型都要更改更改高级共享设置打开“控制面板”打开“网络和Internet”打开“网络与共......
  • 单细胞测序 10x genomics
     单细胞转录组从研究方向看上,发育生物学、免疫、神经生物学、肿瘤是排名靠前的方向,这和我们平时遇到的高频研究方向基本吻合。另外,作为一个新兴的领域,10X单细胞转录组检测到细胞多,数据庞大,信息复杂,对数据分析带来诸多困难,因此算法类的文章(Computationalmethod)也高达76篇。从物种......
  • 国产芯片 —— 2023年龙芯最新的 3A6000 确实已经追上 2020年发布的 10代 i3酷睿
    看新闻:https://news.cnblogs.com/n/752564/         =============================================  性能测试对比图:(截取自:https://www.bilibili.com/video/BV14P41187M9/?vd_source=f1d0f27367a99104c397918f0cf362b7)     ......
  • 线程和进程
    进程   -一个应用程序,总是通过操作系统启动的,当操作系统启动一个应用程序时,会分配一个拥有独立的可伸缩的内存空间的进程,原则上不受其他进程干扰   -进程之间是可以通信的,只要两个进程双方遵守一定的协议,比如ipc   -CPU在不同的进程之间切换执行  ......
  • 线程创建方式
    1.Thread通过继承Thread的方式,可以创建一个线程,需要重写其中的run方法,启动线程时,通过调用start方法启动。形如:2.Runnable通过实现Runnable接口的方式,可以创建一个线程,需要重写其中的run方法,启动线程时,将自定义类的实例作为一个参数,调用Thread的构造方法,得到一个线程实例,再......
  • 10.31算法
    最长回文子串给你一个字符串s,找到s中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"class Solution {public:    string longes......
  • 「Log」2023.10.30 小记
    序幕\(\text{6:50}\):昏暗到校,写CF杂题。经过两个小时的思考终于看懂了题解。\(\color{blueviolet}{CF1530F}\)此题是神秘题。考虑反着做,将至少有一行或一列或一条对角线全为\(1\)概率转换为所有行列对角线都至少有一个\(0\)。先不考虑行与对角线,只考虑满足所有列都至少......
  • JT808协议、JT809协议、JT1078协议的定义及区别
    JT808协议、JT809协议和JT1078是道路运输车辆卫星定位系统的相关协议,它们在定义、版本和功能上存在一些区别。首先,JT808协议是一种定位协议、通讯协议、基础协议,基于TCP或UDP通信协议,用于GPS定位车载终端和监控平台之间的通信。该协议适用于GPS定位车载终端和监控平台之间的通信,......
  • kafka复习:(10)按分区获取ConsumerRecord
    packagecom.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;importorg.apache.kafka.clients.consumer.ConsumerConfig;importorg.apache.kafka.clients.consumer.ConsumerRecord;importorg.apache.kafka.clients.consumer.ConsumerRecords;importorg.apache.kafka......
  • 10月31日线程基础
    目录线程基础线程的概念如果把操作系统当成一个工厂进程之间是竞争关系,线程之间是什么关系纠正概念进程与线程的区别是什么?线程基础线程的概念在操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程线程顾名思义,就是一条流水线工作的过程,可以这么想一条流水线必须属于......