只有本人能看懂的-Python线程,进程,携程,I/O同步,异步

举个栗子

  我想get三个url,先用普通的for循环

import requests
from multiprocessing import Process
from threading import Thread
import requests
import time
# -----正常遍历 串行 同步-----
def get_page(url):
page = requests.get(url)
print(url) start = time.time()
urls = ['http://jandan.net/','https://www.python.org','http://www.gamersky.com/']
for i in urls:
get_page(i)
end = time.time()
print(end - start)
# 这是正常的

这回我用threading模块给他弄快点。

def get_page(url):
page = requests.get(url)
start = time.time()
list = [] # 线程对象列表
urls = ['http://jandan.net/','http://www.xiaohuar.com/','http://www.gamersky.com/']
for i in urls:
ok = Thread(target=get_page,args=(i,)) # target为函数名,args为给函数传的参数
list.append(ok)
# get_page(i) for i in list:
i.start() # 启动一下线程
for i in list:
i.join() # 主线程等待子线程执行之后结束
end = time.time()
print(end - start)
# 开了仨线程运行
# 如果线程使用了join()函数(主线程代码将停在join) ,主进程将等待子线程执行结束再执行
# 如果子线程(ok.setDeamon(True))变成守护线程,那么主线程将不会等待子线程执行结束,当主线程结束时,不管子线程是否执行完毕都将强制终止!

我再瞅瞅进程

import multiprocessing
import time
def run():
i =
while i <:
time.sleep()
print(i)
i+= if __name__ == "__main__":
p = multiprocessing.Process(target=run) # 一个进程
p.start()
print(p.pid) # 查看进程的pid

再来个多进程

import multiprocessing
import time
def run():
i = 0
while i <10000:
time.sleep(2)
print(i)
i+=1 if __name__ == "__main__": p = multiprocessing.Process(target=run) # 一个进程
p1 = multiprocessing.Process(target=run) # 一个进程
p2 = multiprocessing.Process(target=run) # 一个进程
p.start()
p1.start()
p2.start()
print(p.pid) # 查看进程的pid

Python线程,进程,携程,I/O同步,异步的更多相关文章

  1. python 线程 进程 协程 学习

    转载自大神博客:http://www.cnblogs.com/aylin/p/5601969.html 仅供学习使用···· python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和 ...

  2. 进程、线程和携程的通俗解释【刘新宇Python】

    通过下面这张图你就能看清楚了,进程.线程和携程的关系   进程: 多个进程是可以运行在多个CPU当中的,比如你的电脑是4核,可以同时并行运行四个进程,这是真正物理上的并行运行. 线程: 每个进程又可以 ...

  3. 学到了林海峰,武沛齐讲的Day34 完 线程 进程 协程 很重要

    线程 进程 协程 很重要 ...儿子满月回家办酒,学的有点慢,坚持

  4. Python 线程&进程与协程

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  5. 15.python并发编程(线程--进程--协程)

    一.进程:1.定义:进程最小的资源单位,本质就是一个程序在一个数据集上的一次动态执行(运行)的过程2.组成:进程一般由程序,数据集,进程控制三部分组成:(1)程序:用来描述进程要完成哪些功能以及如何完 ...

  6. python之并发编程(线程\进程\协程)

    一.进程和线程 1.进程 假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源.是 ...

  7. Python学习笔记整理总结【网络编程】【线程/进程/协程/IO多路模型/select/poll/epoll/selector】

    一.socket(单链接) 1.socket:应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socke ...

  8. 多道技术 进程 线程 协程 GIL锁 同步异步 高并发的解决方案 生产者消费者模型

    本文基本内容 多道技术 进程 线程 协程 并发 多线程 多进程 线程池 进程池 GIL锁 互斥锁 网络IO 同步 异步等 实现高并发的几种方式 协程:单线程实现并发 一 多道技术 产生背景 所有程序串 ...

  9. python_21_线程+进程+协程

    python_线程_进程_协程 什么是线程? -- os能够进行运算调度的最小单位,被包含在进程之中,是一串指令的集合 -- 每个线程都是独立的,可以访问同一进程下所有的资源 什么是进程? -- 每个 ...

  10. 线程&进程&协程

    线程 线程是应用程序中工作的最小单元,它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.Threading用 ...

随机推荐

  1. jQuery队列(三)

    看了一下队列剩下的几个方法,在没有应用场景的情况下,对它所做的一些处理不能明白.后续希望可以通过动画部分代码的阅读能搞清楚这些处理的意义.jQuery.fn.extend({ // 推迟队列中函数的执 ...

  2. Redis学习笔记--Redis配置文件Sentinel.conf参数配置详解

    redis-sentinel.conf配置项说明如下: 1.port 26379 sentinel监听端口,默认是26379,可以修改. 2.sentinel monitor <master-n ...

  3. C# .ToString()格式化 常用数据转化小总结

    1.百分比 ; ; string p = ((double)i / j).ToString("P");//结果:200.00% p = string.Format("{0 ...

  4. wpgcms---碎片管理的使用

    这里很神奇的是碎片管理是编辑器,所以拿到的配置都是富文本,所以在前台作为字段来使用的时候,需要过滤掉字符串. 具体示例: {% set qq = wpg.fragment.get("qq&q ...

  5. 爬取博主的所有文章并保存为PDF文件

    继续改进上一个项目,上次我们爬取了所有文章,但是保存为TXT文件,查看不方便,而且还无法保存文章中的代码和图片. 所以这次保存为PDF文件,方便查看. 需要的工具: 1.wkhtmltopdf安装包, ...

  6. js深浅copy

    ...点copy是浅拷贝var obj1 = [1,{a: 1}];//var obj2 = Object.assign( {}, obj1);//浅copy//var obj2 = JSON.par ...

  7. msql_createdb: 建立一个新的 mSQL 数据库。

    mcrypt_ecb: 使用 ECB 将资料加/解密. mcrypt_get_block_size: 取得编码方式的区块大小. mcrypt_get_cipher_name: 取得编码方式的名称. m ...

  8. PHP-FPM子进程过少解决办法

    /usr/local/php/var/log/php-fpm.log报一下错误 server reached pm.max_children setting (5), consider raising ...

  9. 高盛为什么认为中国AI领域将超越美国?

    不久前,高盛发布的名为<中国在人工智能领域崛起>的研究报告,报告中,高盛认为中国已经成为AI领域的主要竞争者,中国政府建设“智慧型经济”和“智慧社会”的目标将有可能推动中国未来GDP的增长 ...

  10. IDEA2016.3搭建Struts2+Hibernate+Spring项目环境

    IDEA搭建SSH环境 1.环境 软件版本:IntelliJ IDEA 2016.3.2 系统:windows 7 32位 / ubuntu 框架:Hibernate3,Spring3.2, Stru ...