美文网首页
多任务-总结

多任务-总结

作者: 咏远瑞智 | 来源:发表于2018-06-05 21:23 被阅读0次

1.线程

from threading import Thread

t = Thread(target=work1, args=(x,), kwargs={'x':'y'})

t.start()

2.多线程之间共享数据-全局变量,传参

传参只能使用可变类型的

3.自定义线程类

定义一个类,继承Thread

class func(Thread):

    创建run方法

    def run(self):

        pass

f = func()

f.start() 调用start方法会自动执行run方法

进程

1.导入进程模块

from multiprocessing import Process

#  创建进程对象

p = Process(target=work, args=(x,), kwargs={'x':'y'})

# 开启start

p.start()

2. 进程之间不能共享数据,要想让进程间通信,可以使用消息队列Queue

Queue是进程模块中的一个类

创建队列对象

q = Queue(3)  3表示最大最大能接收三条消息

放入数据

q.put()  括号里面可以放任意类型的数据

q.get()  数据一个一个取出来,当没有数据的时候会等待数据放入,并不会报错

q.empty()  判断队列里面数据是否为空

q.full()  判断队列里面数据是否已经放满

q.qsize() 显示当前队列里面的消息数量

q.put_nowait()

q.get_nowait()  当没有数据要取的时候,会报错,提示empty

3. 进程池:进程可以动态创建,但是当需要的进程数量较多时,手动创建会很浪费时间,这时候,可以使用进程池,

预先创建多个进程,此时进程池里面的进程结束后也不会被销毁

  1.导入进程模块中的Pool类

  from multiprocessing import Pool

  2.创建进程池对象

  po = Pool(3)  3表示能接收的最大进程数

  3.使用非阻塞的方式调用函数,执行顺序是无序的,异步  同步是指使用阻塞的方式执行,会排队等待

  po.apply_async(函数名, (x,y,), {'x':'y'}) 异步,非阻塞,无序

  4.po.close()  关闭进程池

    po.terminate()  不管任务有没有执行完成,都会立即终止

  5.po.join()  主进程等待子进程结束,必须放在close或是terminate之后

4. 进程池消息队列

  导入进程模块中的Manager()

  from multiprocessing import Pool, Manager

  q = Manager().Queue()

  其它用法与进程中消息队列用法一样

5.目前用到的关闭的地方有

文件的关闭

套接字的关闭

进程池的关闭

相关文章

  • 多任务-总结

    1.线程 from threading import Thread t = Thread(target=work1...

  • 进程调度

    这章的主要内容是进程调度相关知识,下面我们来看本章总结:多任务操系统分为两类: 非抢占式多任务 抢占式多任务Lin...

  • 多任务处理-总结

    NSOprationQueue与GCD的区别与选用 GCD是底层的C语言构成的API,而NSOperationQu...

  • Python多任务总结

    多任务什么是多任务同时做多件事件(做个多个任务),运行多个方法多任务的原理并发:假的多任务,时间片的轮转,快速的交...

  • Python多任务_总结

    迭代器、可迭代对象: 我们把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象...

  • 多任务处理-NSOperation

    多任务处理,也称作多线程处理。iOS 中主要是 NSOperation 和 GCD。这篇文章总结下 NSOpera...

  • 06.系统编程-1.进程

    1、多任务的引入 实现类似唱歌又跳舞的任务同时进行的,叫做:多任务 2、多任务的概念 什么叫“多任务”。简单地说,...

  • 进程调度

    多任务 多任务系统可以划分为两类: 非抢占式多任务 除非进程自己停止, 否则它会一直执行 抢占式多任务 由调度程序...

  • 1-进程

    多任务原理 现代操作系统(Windows、Mac OS X、Linux、UNIX等)都支持“多任务” 什么叫多任务...

  • 进程、线程

    时间片轮转 并行:真的多任务 并发:假的多任务

网友评论

      本文标题:多任务-总结

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