因為協程是乙個執行緒執行,那怎麼利用多核cpu呢?最簡單的方法是多程序+協程,既充分利用多核,又充分發揮協程的高效率,可獲得極高的效能。
import time
import queue
defconsumer
(name):
print("--->ready to eat baozi...")
while
true:
new_baozi = yield
print("[%s] is eating baozi %s" % (name,new_baozi))
#time.sleep(1)
defproducer
(): r = con.__next__()
r = con2.__next__()
n = 0
while
1: time.sleep(1)
print("\033[32;1m[producer]\033[0m is ****** baozi %s and %s" %(n,n+1) )
con.send(n)
con2.send(n+1)
n +=2
if __name__ == '__main__':
con = consumer("c1")
con2 = consumer("c2")
p = producer()
from greenlet import greenlet
deftest1
(): print(12)
gr2.switch()
print(34)
gr2.switch()
deftest2
(): print(56)
gr1.switch()
print(78)
gr1 = greenlet(test1)
gr2 = greenlet(test2)
gr1.switch()
import gevent
import requests,time
start=time.time()
deff
(url):
print('get: %s' % url)
resp =requests.get(url)
data = resp.text
print('%d bytes received from %s.' % (len(data), url))
gevent.joinall([
gevent.spawn(f, ''),
gevent.spawn(f, ''),
gevent.spawn(f, ''),
gevent.spawn(f, ''),
])# f('')
## f('')
## f('')
## f('')
print("cost time:",time.time()-start)
第二十五天
程序 資源分配的最小單元 程序的組成 程式 資料和程序控制塊 pcb 所有的排程都是提前準備的 程序的經典三態 執行 就緒 等待 父程序的id ppid 啟動程序的使用者id uid 排程演算法 1.先來先服務 2.短程序優先 3.高優先順序優先 4.時間片輪轉法 一般都是用這個 先來先服務演算法的...
第二十五天
學會了final的相關使用方法 明天學習abstract關鍵字 一 final關鍵字 final關鍵字是最終的意思,使用final修飾類,代表該類不能被繼承。final修飾方法表示該方法不能被重寫。final修飾變數,代表該變數是常量 1 final方法 使用final修飾方法時,該方法不能被重寫,...
linuxC學習第二十五天
只說明部分 自動宣告變數,預設時編譯器預設是auto。請求編譯器盡可能的將變數存在cpu的內部暫存器中。通過這種方式可以盡可能的提高效率。要注意的是,內部暫存器有限,不能全部放入暫存器中,因此只是盡可能的存放cpu的內部暫存器中 修飾靜態變數 全域性變數,區域性變數 靜態變數存放在記憶體的資料區 1...