美文网首页
Python基础总结(多线程)

Python基础总结(多线程)

作者: zxhlcl | 来源:发表于2018-10-25 17:40 被阅读0次

什么是进程?
程序执行的时候就是进程,一个进程可以有一个线程,也可以有多个线程,多线程之间的执行由系统调度,看起来像同时执行
什么是线程?
每个程序在运行的时候(进程)系统都会为进程创建一个线程,这个线程就是主线程,线程内部的任务是串行执行
1、使用threading模块

import time
import random
import threading

def download(file):
    print(file,threading.current_thread())
    print(time.ctime(),"开始下载:{}".format(file))
    temp=random.randint(5,10)
    time.sleep(temp)#将当前线程阻塞指定的时间,时间单位是秒
    print(time.ctime(),"下载{}结束".format(file),"总耗时:{}".format(temp))


if __name__ =='__main__':
    #1、创建一个线程对象

    '''
    Thread(target= ,args=)
    target:需要传递一个在子线程中执行的函数
    agrs:在子线程中调用target函数应该传递的参数,类型是元组
    '''
    t1=threading.Thread(target=download,args=("肖申克的救赎",))
    t2 = threading.Thread(target=download, args=("阿甘正传",))
    t1.start()
    t2.start()

2、自定义线程
(1)写一个类继承Thread类
(2)实现当前类的run方法,run中的任务就是子线程中执行的任务
(3)创建当前类的对象,就是线程对象,用start去执行

import threading
import time
class DonwloadThread(threading.Thread):
    def __init__(self,file):
        super().__init__( )
        self.file=file
    def run(self):
        print("时间:{};开始下载文件:{}".format(time.ctime(),self.file))
        time.sleep(5)
        print("时间:{};结束下载文件:{}".format(time.ctime(), self.file))
t1=DonwloadThread("肖申克的救赎")
t1.start()

相关文章

网友评论

      本文标题:Python基础总结(多线程)

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