協(xié)程 線程 進程

協(xié)程段多,又稱為線程足绅,
線程是一個python個中另外一中實現(xiàn)多任務(wù)返方式淳梦,在一個線程中的某個函數(shù)可以理解任何地方保存當(dāng)前函數(shù)中的臨時變量的信息揖赴,然后再到另一個函數(shù)中執(zhí)行

協(xié)程和線程差異
在多個處理器的情況下巫财,從概念上多線程同時運行多個線程:而協(xié)同程序是同過協(xié)作來完成的
在任一指定時刻只有一個協(xié)同程序在運行秽荞,并且這個正在運行的協(xié)同程序只在必要時才會被掛起

簡單實現(xiàn)協(xié)程
from  gevent  import monkey#導(dǎo)入補丁模塊
monkey.patch_all() #創(chuàng)建補丁
import gevent 
import request
from queue import Queue
import time

#明確url

base_url='https://hr.tencent.com/position.php?start=%d'#騰訊

def get_page(q):
while not q.empty()#判斷對象不為空時
        url = q.get#獲取隊列中的一個
         
        response=requests.get(url,headers={'User-Agent':'lalala'})#發(fā)送請求
print(reponse.url)

print(time.ctime())#當(dāng)前時間
g_list=[]#列表
q= Queue()#隊列創(chuàng)建

#創(chuàng)建任務(wù)
for i in range(0,3800+1,10):
      fullurl = base_url/%#將內(nèi)容插入鏈家
      q.put(fullurl)

#多少個基層
for i in range(100);
    g = genent.spawn(get_page,q)#創(chuàng)建協(xié)程
   g_list.append(g)#將協(xié)程對象添加到列表中

# for i in g_list:#遍歷狀態(tài)
#     i.join()#等待當(dāng)前協(xié)程執(zhí)行完畢顷编,在繼續(xù)執(zhí)行
gevent.joinall(g_list)#等待所有協(xié)程執(zhí)行完畢
print(time.ctime())#結(jié)束時間

greenlet
為了更好使用協(xié)程來完成多任務(wù)霎俩,python中的greenlet模塊對其封裝,從而使得切換任務(wù)變的更加簡單

greenlet是一個python的協(xié)程管理仁堪、切換模塊哮洽。通過greenlet,你可以顯式地在不同的任務(wù)之間切換弦聂。

gevent.spawn啟動的所有協(xié)程鸟辅,都是運行在同一個線程之中,所以協(xié)程不能跨線程同步數(shù)據(jù)莺葫。

gevent.queue.Queue 是協(xié)程安全的匪凉。


python程序?qū)崿F(xiàn)的一種單線程下的多任務(wù)執(zhí)行調(diào)度器,簡單來說在一個線程里徙融,先后執(zhí)行AB兩個任務(wù)洒缀,但是當(dāng)A遇到耗時操作(網(wǎng)絡(luò)等待、文件讀寫等)欺冀,這個時候gevent會讓A繼續(xù)執(zhí)行树绩,但是同時也會開始執(zhí)行B任務(wù),如果B在遇到耗時操作同時A又執(zhí)行完了耗時操作隐轩,gevent又繼續(xù)執(zhí)行A饺饭。


imort  gevent
def test(time)
    print(1)

gevent.sleep(time)

print(2)


def test(time):
print(3)

gevent.sleep(time)

print(4)

if __name == 'main'

gevent.joinall9[
      gevent.spawn(test,2),
      gevent.spawn(test,3)
])

其中g(shù)event.sleep()是gevent自帶的延時,當(dāng)gevent遇到這個延時時會自動切換职车,這里用gevent.sleep()代替一些耗時操作




2(進程)

  進程是系統(tǒng)分配和調(diào)度資源的基本單位瘫俊,線程是cpu調(diào)度和分派的基本單位
線程和進程在使用上各有優(yōu)缺點:線程執(zhí)行開銷小,但不利于資源的管理和保護悴灵;而進程正相反扛芽。

在一個進程內(nèi)的所有線程共享全局變量,很方便在多個線程間共享數(shù)據(jù)
:一個執(zhí)行中程序的實例积瞒。系統(tǒng)中的每個程序都運行在某個進程的上下文中

進程是系統(tǒng)資源分配的最小單位




3.線程
在一個進程內(nèi)的所有線程共享全局變量川尖,很方便在多個線程間共享數(shù)據(jù)。
并行:指的是任務(wù)數(shù)小于等于cpu核數(shù)茫孔,即任務(wù)真的是一起執(zhí)行的

線程是操作系統(tǒng)能夠進行運算調(diào)度的最小單位叮喳。


并發(fā)
1.并發(fā)設(shè)計 2.并發(fā)執(zhí)行
使多個操作可以在重疊的時間段內(nèi)進行 
這里的重點在于重疊的時間內(nèi)
在時間1s秒內(nèi), 具有IO操作的task1和task2都完成,這就可以說是并發(fā)執(zhí)行缰贝。所以呢馍悟,單線程也是可以做到并發(fā)運行的。
取決于設(shè)計剩晴,也取決于部署方式
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锣咒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宠哄,老刑警劉巖壹将,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗤攻,死亡現(xiàn)場離奇詭異毛嫉,居然都是意外死亡,警方通過查閱死者的電腦和手機妇菱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門承粤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闯团,你說我怎么就攤上這事辛臊。” “怎么了房交?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵彻舰,是天一觀的道長。 經(jīng)常有香客問我候味,道長刃唤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任白群,我火速辦了婚禮尚胞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帜慢。我一直安慰自己笼裳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布粱玲。 她就那樣靜靜地躺著躬柬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抽减。 梳的紋絲不亂的頭發(fā)上允青,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音胯甩,去河邊找鬼昧廷。 笑死,一個胖子當(dāng)著我的面吹牛偎箫,可吹牛的內(nèi)容都是我干的木柬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼淹办,長吁一口氣:“原來是場噩夢啊……” “哼眉枕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤速挑,失蹤者是張志新(化名)和其女友劉穎谤牡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姥宝,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡翅萤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腊满。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片套么。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碳蛋,靈堂內(nèi)的尸體忽然破棺而出胚泌,到底是詐尸還是另有隱情,我是刑警寧澤肃弟,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布玷室,位于F島的核電站,受9級特大地震影響笤受,放射性物質(zhì)發(fā)生泄漏穷缤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一感论、第九天 我趴在偏房一處隱蔽的房頂上張望绅项。 院中可真熱鬧,春花似錦比肄、人聲如沸快耿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掀亥。三九已至,卻和暖如春妥色,著一層夾襖步出監(jiān)牢的瞬間搪花,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工嘹害, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撮竿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓笔呀,卻偏偏與公主長得像幢踏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子许师,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容