代码之家  ›  专栏  ›  技术社区  ›  xendi

并发和Sellenium-多处理与多线程

  •  4
  • xendi  · 技术社区  · 6 年前

    我有一个脚本,它使用了很多无头Selenium自动化和循环HTTP请求。为这个脚本实现一个线程/工作队列是非常重要的。我已经做到了。

    我的问题是:我应该使用多线程还是多进程?线程还是进程池?我知道:

    如果您的程序花费更多的时间等待文件读取、网络请求或任何类型的I/O任务,那么它就是一个I/O瓶颈,您应该考虑使用线程来加速它

    还有。。。

    “如果您的程序在大型数据集上花费更多的时间在基于CPU的任务上,那么这就是CPU瓶颈。在这种情况下,为了加速程序,最好使用多个进程。我说,单线程Python程序可能会更快地处理CPU受限的问题,这可能取决于未知因素,如问题集的大小等等。”

    或者更简洁地说:当我在脚本中线程Selenium时,web驱动程序是否被限制为1个CPU内核,即脚本线程运行的同一个内核?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Sraw    6 年前

    网络司机只是一个司机,司机没有车就不能开车。

    ChromeDriver 为了与浏览器通信,您正在启动Chrome。以及 铬驱动

    所以要澄清的是,webdriver是一个操纵浏览器的工具,但它本身并不是一个浏览器。