总结

python下多线程的思考

对于资源,加锁是个重要的环节。因为python原生的list,dict等,都是not thread safe的。而Queue,是线程安全的,因此在满足使用条件下,建议使用队列

包中的常用方法:

Queue.qsize() 返回队列的大小

Queue.empty() 如果队列为空,返回True,反之False

Queue.full() 如果队列满了,返回True,反之False

Queue.full 与 maxsize 大小对应

Queue.get([block[, timeout]])获取队列,timeout等待时间

创建一个“队列”对象

多线程示意图:

进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的

进程的状态

工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态

线程之间的操作是无序的

一个线程下面有一个主线程

线程:相当于打开一个浏览器

进程:相当于在浏览器里面打开多个窗口

实现多任务的手段(方式):

1.多线程

2.多进程

3.协程

什么是Scrapy框架

Scrapy一个开源和协作的框架是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。导入 from multiprocessing import Pool

创建一个进程池:pool = Pool()

pool.apply()  同步的方法,执行效率比较低

apply_async  是一个异步方法,可以提高任务执行的效率

func,对应的任务的函数名称

args=() , 传递参数(元组)

kwds={} , 传递参数(字典)

迭代器

迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退

可迭代对象 我们已经知道可以对list、tuple、str等类型的数据使用for...in...的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,651评论 6 427
  • Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资...
    叶同学阅读 11,255评论 0 73
  • 做保险,被别人拒绝是非常常见的,这也是为什么说保险是最难做的销售之一。保险行业淘汰率是非常高的,原因很多,但是...
    潇洒月下梨花白阅读 627评论 0 2
  • 今天的OH卡,问题是怎么看待用简书来记录自己的轨迹。 第一张图是回归 我看到幼小的我,有一位长者指引。象征回归自我...
    双重奏阅读 165评论 0 2
  • 学生圈最近流行抽一次性电子烟,没想到我的班里也出现了这个问题。 【第一部分:事情始末】 先是听到风声...
    龙之崛起阅读 580评论 0 5