python----gevent

进程和线程的任务切换由操作系统完成

协程任务之间的切换由程序(代码)完成,只有遇到协程模块能识别的IO操作的时候,程序才会进行任务切换,实现并发的效果

实例实现:
from gevent import monkey;

monkey.patch_all()
import requests

import time
import gevent

data = {'type': 'log', 'status': 'info', 'project_name': 'Project_0309_141331', 'project_desc': 'nan',
        'mac_addr': '70-B5-E8-2A-4C-B0', 'license_code': 'E9pO5YUqy5tCMfHcUkWc/A==',
        'studio_version': '2021/01/27 16:16:27 Build', 'case_name': 'TEST1.py', 'case_result': 'FAIL',
        'case_cost_time': '2', 'api_name': 'sleep', 'api_result': 'PASS', 'api_cost_time': '0.401',
        'create_time': '20210316103249'}


def task(n):
    # time.sleep(1)
    res = requests.post(url="https://www.baidu.com", json=data, timeout=1)
    if res.status_code != 200:
        # do_bak()
        print("失败,备份数据")

def asyncc():
    g_lst = []
    for i in range(10):
        g = gevent.spawn(task, i)
        g_lst.append(g)
    gevent.joinall(g_lst)  # for g in g_lst:g.join()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前述 进程 线程 协程 异步 并发编程(不是并行)目前有四种方式:多进程、多线程、协程和异步。 多进程编程在pyt...
    softlns阅读 6,349评论 2 24
  • 前述 进程 线程 协程 异步 并发编程(不是并行)目前有四种方式:多进程、多线程、协程和异步。 多进程编程在pyt...
    卷卷_麦芽呀阅读 21,659评论 0 6
  • 上一篇文章为:→3.4.8协程-greenlet版 gevent greenlet已经实现了协程,但是这个还的人工...
    lyh165阅读 249评论 1 1
  • 与greenlet的比较 greenlet已经实现了协程,但是这个还的人工切换,是不是觉得太麻烦了,不要捉急,py...
    Oo晨晨oO阅读 2,620评论 0 1
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 5,757评论 0 5