美文网首页
day20_多线程

day20_多线程

作者: 逆流而上_2eb6 | 来源:发表于2018-10-25 17:39 被阅读0次

    1.多线程

    进程:系统中正在运行的一个应用程序
    特点:每个进程都是相互独立的,每个进程都在其专用且受保护的内存空间中
    线程:一个进程至少有一个线程
    线程是串行的,
    延时:sleep(时间):会将当前线程指定的时间,单位秒(s)

    import time
    time.sleep(5)
    

    多线程:一个进程可以开启多条线程,每条线程可以并行执行不同的任务
    多线程可以提高程序的执行效率
    多线程的原理:同一时间cpu只能处理1条线程,只有1条线程在工作;cpu快速地在多条线程之间调度(切换)

    每个程序在运行的时候系统都会为这个进程创建一个线程,这个线程我们叫主线程。程序员自己创建的线程叫子线程
    多个任务在一个线程中是按顺序一个一个执行的(串行)
    多个线程的任务同时执行
    1.创建子线程对象:
    Thread(target=,args=)
    target:需要传一个需要在子线程中执行的函数(类型是function的变量)
    args:在子线程中调用target对应的函数该传什么函数,类型是元祖
    2.让子线程执行

    import threading
    t1 = threading.Thread(target = ,args = )
    t1.start()
    

    current_thread()获取当前线程

    创建线程的方式2:

    直接通过Thread类创建对象,将需要在子线程中执行的函数作为target参数传送过去

    方式2:写一个自己的类去继承Thread类,实现当前类的run方法,run方法中的任务就是在子线程中执行的任务;创建当前类的对象,就是线程对象,然后调用start去执行线程中的任务

    需要传参就通过当前类来传。

    class DownLodeThread(Thread):
        def __init__(self,file):
            super().__init__()
            self.file = file
        def run(self):
            print(file)
    t1 = DownLodeThread("file")
    t1.start()  #开始子线程
    t1.run()   #调用run(),不是子线程
    

    相关文章

      网友评论

          本文标题:day20_多线程

          本文链接:https://www.haomeiwen.com/subject/iiuctqtx.html