day9-并发多线程

一、前言

  我们说的单核的CPU只能同时执行一个任务,但是给我们的幻觉是可以执行多个任务,因为CPU太快了。它是怎么实现的呢?就是上下文的切换,它不是轮询切换的。它是按照优先级来切换的,并不是从头到尾,中间的切换是有优先级的我们就可以利用这个优势,因为太快了,但是我们只能打开一个QQ,启动一个线程的话,他能得到执行的时间是优先的。那CPU给我们的感觉同时执行多个任务,那我就可以执行并发批量操作某个动作。

二、多并发,多线程效果演示

2.1、创建线程

import threading,time

def run(n):
    print("task:",n)

t1 = threading.Thread(target = run,args = ("t1",))
t2 = threading.Thread(target = run,args = ("t2",))

#实例化

t1.start()
t2.start()

#有人会觉得上面的代码,跟下面的代码没上面不同

def run(n):
    print("task:",n)

t1=run(t1)
t2=run(t2)  #请看下面的例子

2.2、验证并发,多线程效果

import threading,time

def run(n)
    print("task:",n)
    time.sleep(2)   #代表某个功能模块执行时间
   

t1=threading.Thread(targat=run,args=("t1",))

t2=threading.Thread(targat=run,args=("t2",))

t1.start()
t2.start()

#这样执行的时间在 2s 多一点, 如果想刚才的例子里  

t1=run(t1)
t2=run(t2)  需要4S多一点的时间。

 

posted @ 2018-03-16 16:37  东郭仔  阅读(82)  评论(0)    收藏  举报