zoukankan      html  css  js  c++  java
  • 线程的简单介绍

    线程的两种创建方式

    from threading import Thread
    import time,os
    
    #方式一使用函数对象
    def task(name):
        print(f'{name}子线程 start')
        time.sleep(2)
        print(f'{name}子线程 end')
    
    t = Thread(target=task,args=('t1',))
    t.start()
    print('线程一')
    
    #方式二使用自定义类来继承Thread类
    class task(Thread):
        def run(self):
            print(f'子线程 start')
            time.sleep(1)
            print(f'子线程 end')
    
    t = task()
    t.start()
    print('线程一')
    

    线程和进程的速度对比

    由于进程在实例化后,我们使用start()方法来向操作系统发送进程的内存空间的开辟,然后执行子进程会把父进程里的代码复制一份来执行,这个请求可能由于操作系统在执行其他任务,而不会立即完成请求任务,而线程会直接执行我们指定的代码,并不需要申请内存空间,所以速度会快于进程.
    

    线程的资源共享

    from threading import Thread
    import time,os
    x = 100
    def task():
        global x
        x= 1000
    t = Thread(target=task)
    t.start()
    print(x) # 1000
    
    #经试验,在程序开始定义的x = 100,经过线程的运行,x 变成了1000 所以我们创建的t线程和主线程使用的一块内存空间.
    

    线程的join方法

    from threading import Thread
    import time
    def task(name):
        print(f'{name}子线程 start')
        time.sleep(2)
        print(f'{name}子线程 end')
    t = Thread(target=task,args=('t1',))
    
    t.start()
    t.join()
    print('线程一')
    
    #线程的join方法和进程的join功能类似,都是等待我们线程(进程)执行结束,才会执行join语句后面的代码.
    
  • 相关阅读:
    用例建模Use Case Modeling——传感器智能分析引擎
    结合工程实践分析同类软件产品-抖音快手微视
    为知笔记快捷键
    unity__细碎小知识
    unity__脚本实例化
    unity_GUI
    unity__音频
    关于js获取赋值,遍历属性
    关于节点,jquery的使用以及动画效果
    关于数组,对象,构造器的写法以及事件的使用
  • 原文地址:https://www.cnblogs.com/cheng825/p/11536621.html
Copyright © 2011-2022 走看看