zoukankan      html  css  js  c++  java
  • 八、多线程爬虫(先占个位置,等整理好线程,进程,协程,异步IO在来写)

    计算机的核心是CPU,CPU承担了所有的计算任务。

    一个CPU核心,一次只能执行一个任务; 多个CPU核心同时可以执行多个任务。

    一个CPU一次只能执行一个进程,其他进程处于非运行状态。

    进程里包含的执行单元叫线程; 一个进程可以包含多个线程。

    一个进程的内存空间是共享的,每个进程里的线程都可以使用这个内存空间;一个进程在使用这个共享时,其他线程必须等它结束。

     python里的lock

    Queue(队列对象)

    Queue是python中的标准库,可以直接import Queue引用;队列是线程间最常用的交换数据的形式

    python下多线程的思考

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

    1. 初始化: class Queue.Queue(maxsize) FIFO 先进先出

    2. 包中的常用方法:

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

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

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

      • Queue.full 与 maxsize 大小对应

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

    3. 创建一个“队列”对象

      • import Queue
      • myqueue = Queue.Queue(maxsize = 10)
    4. 将一个值放入队列中

      • myqueue.put(10)
    5. 将一个值从队列中取出

      • myqueue.get()

  • 相关阅读:
    Java
    maven打包
    maven
    memset用法祥解
    HTML5 canvas save和restore方法讲解
    修复无线链接时断时连
    VirtualBox内Linux系统怎样与Windows共享文件夹
    Ubuntu默认密码,及其修改
    mysql中char与varchar的区别分析
    javax.servlet包介绍
  • 原文地址:https://www.cnblogs.com/jiangzijiang/p/8475570.html
Copyright © 2011-2022 走看看