最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對Python協(xié)程之異步同步的區(qū)別詳解

 更新時間:2019年02月19日 10:35:02   作者:haeasringnar  
今天小編就為大家分享一篇對Python協(xié)程之異步同步的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一下代碼通過協(xié)程、多線程、多進程的方式,運行代碼展示異步與同步的區(qū)別。

import gevent
import threading
import multiprocessing
# 這里展示同步和異步的性能區(qū)別,可以看到異步直接同時執(zhí)行并完成,
# 而同步,需要等待第一個完成后再次執(zhí)行下一個,是有順序的執(zhí)行,而異步不需要
import time


def task(pid):
  gevent.sleep(0.5)
  print('Task %s done' % pid)

def task2(pid):
  time.sleep(0.5)
  print('Task %s done'%pid)

def synchronous():
  for i in range(1, 10):
    task(i)

def asynchronous():
  threads = [gevent.spawn(task, i) for i in range(1,10)]
  gevent.joinall(threads)

def thread_chronous():
  t_list = []
  for i in range(1,10):
    t = threading.Thread(target=task2,args=(i,))
    t.start()
    t_list.append(t)
  for j in t_list:
    j.join()

def multi_chronous():
  t_list = []
  for i in range(1, 10):
    t = multiprocessing.Process(target=task2, args=(i,))
    t.start()
    t_list.append(t)
  for j in t_list:
    j.join()

# 同步執(zhí)行
print('Synchronous:')
synchronous()
# 開啟協(xié)程異步執(zhí)行 自動切換函數(shù)
print('Asynchronous:')
asynchronous()
# 開啟線程異步執(zhí)行
print('Threading')
thread_chronous()
# 開啟進程的異步執(zhí)行
if __name__ == '__main__':
  print('Multiprocess')
  multi_chronous()

關(guān)于異步 同步的一些理解:

同步和異步的區(qū)別就在于是否等待IO執(zhí)行的結(jié)果。好比你去麥當勞點餐,你說“來個漢堡”,服務員告訴你,對不起,漢堡要現(xiàn)做,需要等5分鐘,于是你站在收銀臺前面等了5分鐘,拿到漢堡再去逛商場,這是同步IO。

你說“來個漢堡”,服務員告訴你,漢堡需要等5分鐘,你可以先去逛商場,等做好了,我們再通知你,這樣你可以立刻去干別的事情(逛商場),這是異步IO。

老張愛喝茶,廢話不說,煮開水。出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。

1 老張把水壺放到火上,立等水開。(同步阻塞)老張覺得自己有點傻

2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞)老張還是覺得自己有點傻,于是變高端了,買了把會響笛的那種水壺。水開之后,能大聲發(fā)出嘀~~~~的噪音。

3 老張把響水壺放到火上,立等水開。(異步阻塞)老張覺得這樣傻等意義不大

4 老張把響水壺放到火上,去客廳看電視,水壺響之前不再去看它了,響了再去拿壺。(異步非阻塞)老張覺得自己聰明了。所謂同步異步,只是對于水壺而言。普通水壺,同步;響水壺,異步。雖然都能干活,但響水壺可以在自己完工之后,提示老張水開了。這是普通水壺所不能及的。同步只能讓調(diào)用者去輪詢自己(情況2中),造成老張效率的低下。所謂阻塞非阻塞,僅僅對于老張而言。立等的老張,阻塞;看電視的老張,非阻塞。情況1和情況3中老張就是阻塞的,媳婦喊他都不知道。雖然3中響水壺是異步的,可對于立等的老張沒有太大的意義。所以一般異步是配合非阻塞使用的,這樣才能發(fā)揮異步的效用。

以上這篇對Python協(xié)程之異步同步的區(qū)別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python時間處理模塊time和datetime詳解

    Python時間處理模塊time和datetime詳解

    本文詳細介紹了Python中常用的時間處理模塊time和datetime,time模塊提供多種時間獲取和轉(zhuǎn)換功能,datetime模塊則在time的基礎上增加了日期和時間的組合處理,如datetime.now()獲取當前日期時間,兩個模塊在日常編程中非常有用,尤其是在需要時間日期計算和轉(zhuǎn)換的場景下
    2024-10-10
  • python工廠方法模式原理與實現(xiàn)

    python工廠方法模式原理與實現(xiàn)

    大家好,本篇文章主要講的是python工廠方法模式原理與實現(xiàn),感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python3 維護有序列表bisect的使用

    Python3 維護有序列表bisect的使用

    Python3中的bisect模塊提供了一種高效的方式來在有序列表中進行二分查找和插入操作,下面就來介紹一下,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • python3 圖片 4通道轉(zhuǎn)成3通道 1通道轉(zhuǎn)成3通道 圖片壓縮實例

    python3 圖片 4通道轉(zhuǎn)成3通道 1通道轉(zhuǎn)成3通道 圖片壓縮實例

    今天小編就為大家分享一篇python3 圖片 4通道轉(zhuǎn)成3通道 1通道轉(zhuǎn)成3通道 圖片壓縮實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python打印異常信息的兩種實現(xiàn)方式

    python打印異常信息的兩種實現(xiàn)方式

    今天小編就為大家分享一篇python打印異常信息的兩種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python批量修改ssh密碼的實現(xiàn)

    python批量修改ssh密碼的實現(xiàn)

    這篇文章主要介紹了python批量修改ssh密碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • python中文件變化監(jiān)控示例(watchdog)

    python中文件變化監(jiān)控示例(watchdog)

    這篇文章主要介紹了python中文件變化監(jiān)控示例(watchdog),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 簡單介紹Python的Tornado框架中的協(xié)程異步實現(xiàn)原理

    簡單介紹Python的Tornado框架中的協(xié)程異步實現(xiàn)原理

    這篇文章主要介紹了簡單介紹Python的Tornado框架中的協(xié)程異步實現(xiàn)原理,作者基于Python的生成器講述了Tornado異步的特點,需要的朋友可以參考下
    2015-04-04
  • Python如何通過subprocess調(diào)用adb命令詳解

    Python如何通過subprocess調(diào)用adb命令詳解

    python可以說是寫一些小腳本的利器語法簡單,做為最著名的就“膠水語言”用它來寫一些命令腳本非常的方便。下面這篇文章主要給大家介紹了關(guān)于Python如何通過subprocess調(diào)用adb命令的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-08-08
  • Python中常用的高階函數(shù)實例詳解

    Python中常用的高階函數(shù)實例詳解

    高階函數(shù)指的是能接收函數(shù)作為參數(shù)的函數(shù)或類,這篇文章主要介紹了Python中常用的高階函數(shù),通過實例文字解釋相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2020-02-02

最新評論

兴业县| 仪征市| 林芝县| 桓台县| 黑水县| 鄂温| 云霄县| 乐至县| 宝鸡市| 化隆| 喀什市| 百色市| 离岛区| 泸州市| 循化| 正阳县| 伊宁市| 武夷山市| 永川市| 陵川县| 鹤壁市| 武威市| 恩施市| 榆社县| 乌拉特前旗| 林甸县| 高淳县| 霍州市| 阜阳市| 东乌珠穆沁旗| 富裕县| 乌拉特中旗| 柘荣县| 桂东县| 荃湾区| 理塘县| 弥勒县| 定日县| 梁河县| 成都市| 淮北市|