zoukankan      html  css  js  c++  java
  • python 并发编程 多线程 开启线程的两种方式

    一 threading模块介绍

    multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性

    二 开启线程的两种方式

    第一种

    每造一个进程,默认有一个线程,就是主线程。

    进程要想执行,要先造一个主线程,然后由这个进程内的线程去运行代码

    from threading import Thread
    import time
    
    def task(name):
    
    
        print("%s is running" % name)
        time.sleep(3)
        print("%s is done" % name)
    
    
    if __name__ == "__main__":
    
        # 实例化
        # args 为函数传参数
        t = Thread(target=task, args=("子线程1",))
        # 开启子线程
        t.start()   # 仅仅只是给操作系统发送一个信号 与平常print没有什么区别
    
        print("主线程")
    
    
    '''
    子线程1 is running
    主线程
    子线程1 is done
    '''

    上面程序开启了一个进程,两个线程,一个主线程,一个子线程。 主线程给操作系统发送信号,开启子线程

    第二种

    自己写一个子类去继承他
    from threading import Thread
    import time
    
    
    # 自己写一个子类去继承他 不用默认的类
    # Thread的类传进去
    
    class MyThread(Thread):
    
        # 重写了init方法 父类就被覆盖掉
        def __init__(self, name):
    
    
            # 重用父类 因为父类还有很多有用功能,继承父类
            super().__init__()
            self.name = name
    
        # 方法一定要写run
        def run(self):
            print("%s is running" % self.name)
            time.sleep(3)
            print("%s is done" % self.name)
    
    if __name__ == "__main__":
    
        # 实例化 直接用自己自定义的类开子线程
        # args 为函数传参数
        t = MyThread("子线程")
        #t 开启子线程
        t.start()   # 仅仅只是给操作系统发送一个信号 与平常print没有什么区别
    
        # t.start() 本质是调用run方法
        print("主线程")
    
    
    '''
    子线程 is running
    主线程
    子线程 is done
    '''

    编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件

    '''
    需求:
    编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件
    '''
    
    import json
    
    num = input_user = input(">>>:").strip()
    num = num.upper()
    
    with open("1.txt", "w") as f:
        json.dump(num, f)
  • 相关阅读:
    如何利用京东云的对象存储(OSS)上传下载文件
    2017年4月8日Office 365 使用CSV文件导入邮件组
    在Office 365 的如何给管理员赋予查看所有人邮箱的权限的Powershell
    Office 365 Powershell 连接命令
    Office365创建通讯组
    国际版删除域名的步骤
    如何停止AAD服务
    导出Office365中的组及成员
    AWS/阿里/Azure,云厂商价格大PK
    OA系统与Exchange 日历打通
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/9015055.html
Copyright © 2011-2022 走看看