python 协程

1.进程队列:

import multiprocessing , queue ,time

q = queue.Queue(5)
def func(args):
    print('>>>进程运行>>>')
    time.sleep(1)
    print(args)
if __name__=='__main__':

    p1 = multiprocessing.Process(target = func,args=('进程 >>> %s' %1,)).start()
    p2 = multiprocessing.Process(target = func,args=('进程 >>> %s' %2,)).start()
    q.put(p1)
    q.put(p2)
    v1 = q.get()
    v2 = q.get()
    print(v1)
    print(v2)
输出:
None
None
>>>进程运行>>>
>>>进程运行>>>
进程 >>> 1
进程 >>> 2

Process finished with exit code 0

2.协程:本是没有,由自己编程的时候制作的微线程:
运用原理:

import greenlet

#操控运行
def func1():
    print(11)
    g2.switch()
    print(22)
  

def func2():
    print(33)
    g1.switch()
    print(44)

g1 = greenlet.greenlet(func1)
g2 = greenlet.greenlet(func2)

g1.switch()
g2.switch()
输出:
11
33
22
44

(2).运用:

from gevent import monkey
#遇到IO操作就自行切换相当于greenlet.weitch()
monkey.patch_all()                 
import gevent  , requests

HEADERS = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'referer': '',
    'x-csrf-token': '',
    'x-requested-with': 'XMLHttpRequest',
    'cookie': ''',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko)'
                  ' Chrome/90.0.4430.212 Safari/537.36'}
    def get_content1(url):
    r = requests.get(url,headers = HEADERS)
    print(url,' >>>>>',[r.text],'\n'*2)

def get_content2(url):
    r = requests.get(url,headers = HEADERS)
    print(url,' >>>>>',[r.text],'\n'*2)

def get_content3(url):
    r = requests.get(url,headers = HEADERS)
    print(url,' >>>>>',[r.text],'\n'*2)
gevent.joinall([
    gevent.spawn(get_content1,'http://www.ntyou.cc/'),
    gevent.spawn(get_content2,'https://music.163.com/#/artist?id=12355573'),
    gevent.spawn(get_content3,'https://www.kanman.com/sort/'),
])
输出:
https://www.kanman.com/sort/  >>>>> ['<!DOCTYPE html><html lang="zh-cn"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>全部漫画 漫画大全 好看的漫画大全 看漫画</title><meta name="keywords" content="全部漫画 漫画大全 好看的漫画大全 看漫画"><meta name="description" itemprop="description" content="看漫画为您提供比较齐全的各种类型漫画,本页面是本站的全部漫画,看漫画大全,找好看的漫画就上看漫画。".........]

https://music.163.com/#/artist?id=12355573  >>>>> ['<!DOCTYPE html>\n<html>\n<head>\n<meta charset="utf-8">\n<meta name="baidu_ssp_verify" content="39f14c78c537175eb4b5192c72d002c1" />\n<meta name="baidu-site-verification" content="cNhJHKEzsD" />\n<meta name="360-site-verification" content="e37aef53e3922913e2a6a4682e479b84" ..........]

http://www.ntyou.cc/  >>>>> ['<!DOCTYPE html><html><head><title>NT动漫_新番在线动漫_专注动漫的网站</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="keywords" content="NT动漫,新番动漫,在线动漫" /><meta name="description" content="NT动漫,专注的动漫的网站,立志为广大动漫迷提供一个在线看动漫的好平台。" ........]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值