1.队列(queue)

用法:

import queue
q = queue.Queue() #先进先出模式
q.put(1) #存放数据在q里

作用: 1)解耦
     2)提高效率

class queue.Queue(maxsize=0)                        #先入先出
class queue.LifoQueue(maxsize=0)                  #后进先出
class queue.PriorityQueue(maxsize=0)             #存储数据时可设置优先级的队列

Queue.qsize()                                                    #   返回队列的大小
Queue.empty()                                                   # 如果队列为空,返回True,反之False
Queue.full()                                                        #如果队列满了,返回True,反之
Queue.get([block[, timeout]])                              # 获取队列,timeout等待时间
Queue.get_nowait()                                             #相当Queue.get(False)
Queue.put(item)                                                    #写入队列,timeout等待时间( 非阻塞)
Queue.put_nowait(item)                                      # 相当Queue.put(item, False)
Queue.task_done()                                              #在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
Queue.join()                                                           #实际上意味着等到队列为空,再执行别的操作

2.python多线程不适合cpu密集操作型的任务,适合io操作密集型的任务

3.multiprocessing模块 

官方详解:https://docs.python.org/3.5/library/multiprocessing.html#module-multiprocessing

1).pipe(管道)                             

multiprocessing.Pipe()即管道模式,调用Pipe()返回管道的两端的Connection。

2).manager
multiprocessing.manager()
用于多进程之间信息的共享

3).Pool(进程池)
multiprocessing.Pool()
  1)进程池内部维护一个进程序列,当使用时,则去进程池中获取一个进程,如果进程池序列中没有可供使用的进进程,那么程序就会等待,直到进程池中有可用进程为止。

  2)在windos上必须写上if __name__=='__main__':之后才生成进程池才不会出错进程池中进程执行完毕后再关闭,如果注释,那么程序直接关闭。

  3)进程池两个方法
    apply() 穿行
    apply_async() 并行
    注:pool.apply_async(func=Foo, args=(i,), callback=Bar)#callback回调Bar

6.if __name__=='__main__':
_name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。

最新文章

  1. JMeter学习-026-JMeter 分布式(远程)参数化测试实例
  2. Spring.Net的IOC入门
  3. [译]SQL Server 之 查询优化器
  4. SQLdiag-配置文件-PerfmonCollector
  5. RemoteWebDriver管理
  6. 开发ProxyServer的时候如何在一台PC上调试
  7. javascript笔记09:javascript的下拉式导航菜单
  8. HDU 2501 Tiling_easy version(简单递推)
  9. 数据库连接报错之IO异常(The Network Adapter could not establish the connection)
  10. 轻量级数据库sqlite的接口说明
  11. C#实体类生成XML与XML Schema文档
  12. 【转载】 ISO14229系列之二:诊断指令格式和相关概念
  13. python导入模块
  14. Linux驱动基础:msm平台,modem等framework加载
  15. pyltp安装踩坑记录
  16. 规范化Normalization
  17. Xml的用途
  18. SpringBoot扫描不到controller
  19. inode引起的Linux无法创建新文件,磁盘空间不足
  20. ReLU为什么比Sigmoid效果好

热门文章

  1. (转) RabbitMQ学习之发布/订阅(java)
  2. python tips:类的动态绑定
  3. HILLSTONE sg6000 g5150 怎么恢复出厂设置
  4. Project Euler 26 Reciprocal cycles( 分数循环节 )
  5. CENTOS 7发送邮件测试
  6. OOP 面向对象 七大原则 (一)
  7. HTTP中的重定向和请求转发的区别(转)
  8. 如何使用GUID类
  9. 敏捷开发-srcum
  10. L - 还是畅通工程