zoukankan      html  css  js  c++  java
  • 开启线程的两种方式

    一 threading模块介绍

    multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍

    二 开启线程的两种方式

    方式一

    # 方式一
    import time
    import random
    from threading import Thread
    
    def run(name):
        print("%s is running" % name)
        time.sleep(random.randrange(1, 5))
        print("%s is end" % name)
    
    
    if __name__ == "__main__":
        t1 = Thread(target=run, args=("线程1", ))
        t1.start()      # 主线程向操作系统发送在进程中再开启一个线程的信号
        print("主线程")   # 执行角度主线程,资源角度:主进程
    

      

    方式二

    # 方式二
    import time
    import random
    from threading import Thread
    
    class MyThread(Thread):
        def __init__(self,name):
            super().__init__()
            self.name = name
    
        def run(self):
            print("%s is running" % self.name)
            time.sleep(random.randrange(1, 5))
            print("%s is end" % self.name)
    
    
    if __name__ == "__main__":
        t1 = MyThread("线程1")
        t1.start()
        print("主线程")

    三 练习题

    1、基于多线程实现并发的套接字通信

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

  • 相关阅读:
    时间复杂度和空间复杂度的故事
    Go -- 并发编程的两种限速方法
    Go -- type 和断言 interface{}转换
    Go -- 实现二叉搜索树
    Go语言程序的状态监控
    Go -- 中开启gctrace
    Go --- GC优化经验
    Mysql 性能优化20个原则(4)
    Mysql 性能优化20个原则(3)
    查看 activex 组件的方法
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/10129292.html
Copyright © 2011-2022 走看看