python 多程序 04 協程

2022-09-15 06:42:14 字數 944 閱讀 4971

協程是程式設計師創造出來的

單純的協程沒有作用

需要io操作時候進行切換 才有意義

原理 greenlet

import greenlet

def f1():

print(11)

gr2.switch()

print(33)

gr2.switch()

def f2():

print(22)

gr1.switch()

print(44)

if __name__ == '__main__':

"""1. 協程是程式設計師創造出來的

2. 單純的協程沒有作用

3. 需要io操作時候進行切換 才有意義

"""gr1 = greenlet.greenlet(f1)

gr2 = greenlet.greenlet(f2)

gr1.switch()

協程常用模組 gevent

from gevent import monkey

monkey.patch_all() # 以後**中遇到io都會自動執行greenlet 的 switch 進行切換

import requests

import gevent # 在money 之後匯入

def get_page(url):

ret = requests.get(url)

print(url, ret.content)

if __name__ == '__main__':

gevent.joinall([

gevent.spawn(get_page, ''),

gevent.spawn(get_page, ''),

gevent.spawn(get_page, ''),

])

python 多程序 協程 實現併發

使用程序池創 pool 建程序,用佇列 queue 進行程序間通訊。在子程序裡邊用協程去處理。直接上 from datetime import datetime from multiprocessing import pool,manager import asyncio from random i...

多執行緒 多程序 協程

占用的資源 程序 執行緒 協程 程序的顆粒度太大,每次都要有上下的調入,儲存,調出。執行緒 乙個軟體的執行不可能是一條邏輯執行的,必定有多個分支和多個程式段,就好比要實現程式a,實際分成 a,b,c等多個塊組合而成 這裡的a,b,c就是執行緒,也就是說執行緒是共享了程序的上下文環境,的更為細小的cp...

多執行緒 多程序 協程

程序 個執行的程式 就是乙個程序,沒有執行的 叫程式,程序是系統資源分配的最 小單位,程序擁有自己獨立的記憶體空間,所以程序間資料不共享,開銷大。執行緒 排程執行的最小單位 也叫執行路徑,不能獨立存在,依賴程序存在乙個程序至少有一 個 執行緒,叫主線程,而多個執行緒共享記憶體 資料共享,共享全域性變...