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

Python通過poll實現(xiàn)異步IO的方法

 更新時間:2015年06月04日 10:26:58   作者:raygtr  
這篇文章主要介紹了Python通過poll實現(xiàn)異步IO的方法,實例分析了poll方法實現(xiàn)異步IO的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了Python通過poll實現(xiàn)異步IO的方法。分享給大家供大家參考。具體分析如下:

在使用poll()后返回輪詢對象,該對象支持以下方法:
pollObj.register(fd,[,eventmask])第一個參數(shù)是注冊新的文件描述符fd,fd要么是一個整數(shù)文件描述符,要么可以帶有一個獲取文件描述符的fileno()方法的對象。eventmask是一些按位或標(biāo)記,這些標(biāo)記指示要處理的事件。

POLLIN:       用于讀取數(shù)據(jù)
POLLPRI:      用于讀取緊急數(shù)據(jù)
POLLOUT:      準(zhǔn)備寫入
POLLERR:      錯誤情況
POLLHUP:      保持狀態(tài)
POLLNVAL:     無效請求

最后在循環(huán)中利用pollObj.poll()來進(jìn)行對已注冊的文件描述符進(jìn)行輪詢。返回一元祖(fd,event)。其中fd是文件描述符,event是指示時間的位掩碼。至需要將event與對應(yīng)的時間進(jìn)行&測試即可。

利用poll創(chuàng)建對一個多路文件復(fù)制程序,代碼如下:

#!/usr/bin/env python
import select
BLKSIZE=8192
def readwrite(fromfd,tofd):
  readbuf = fromfd.read(BLKSIZE)
  if readbuf:
    tofd.write(readbuf)
    tofd.flush()
  return len(readbuf)
def copyPoll(fromfd1,tofd1,fromfd2,tofd2):
  #定義需要監(jiān)聽的事件
  READ_ONLY = (select.POLLIN |
       select.POLLPRI |
      select.POLLHUP |
      select.POLLERR )
  totalbytes=0
    if not (fromfd1 or fromfd2 or tofd1 or tofd2) :
    return 0
  fd_dict = {fromfd1.fileno():fromfd1,fromfd2.fileno():fromfd2}
  #創(chuàng)建poll對象p
  p=select.poll()
  #利用poll對象p對需要監(jiān)視的文件描述符進(jìn)行注冊
  p.register(fromfd1,READ_ONLY)
  p.register(fromfd2,READ_ONLY)
  while True:
  #輪詢已經(jīng)注冊的文件描述符是否已經(jīng)準(zhǔn)備好
    result = p.poll()
    if len(result) != 0:
      for fd,events in result:
        if fd_dict[fd] is fromfd1:
          if events & (select.POLLIN|select.POLLPRI):
            bytesread = readwrite(fromfd1,tofd1)
            totalbytes+=bytesread
          elif events & (select.POLLERR):
            p.unregister(fd_dict[fd])
        if fd_dict[fd] is fromfd2:
          if events & (select.POLLIN|select.POLLPRI):
            bytesread = readwrite(fromfd2,tofd2)
            totalbytes+=bytesread
          elif events & (select.POLLERR):
            p.unregister(fd_dict[fd])
    if bytesread <= 0:  
      break
  return totalbytes
def main():
  fromfd1 = open("/etc/fstab","r")
  fromfd2 = open("/root/VMwareTools-8.8.1-528969.tar.gz","r")
  tofd1 = open("/root/fstab","w+")
  tofd2 = open("/var/passwd","w+")
  totalbytes = copyPoll(fromfd1,tofd1,fromfd2,tofd2)
  print "Number of bytes copied %d\n" % totalbytes
  return 0
if __name__=="__main__":
  main()

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • 在Django中創(chuàng)建自己的自定義用戶模型

    在Django中創(chuàng)建自己的自定義用戶模型

    這篇文章主要介紹了在Django中創(chuàng)建自己的自定義用戶模型,創(chuàng)建自己的自定義用戶模型至關(guān)重要。將來,如果要對模型進(jìn)行一些更改,則可以輕松進(jìn)行這些更改。不然我們可能必須對模型進(jìn)行一些更改,而且代碼的某些部分也將被更改,下面一起進(jìn)入文章里哦阿姐個表格的詳細(xì)內(nèi)容吧
    2022-01-01
  • python實現(xiàn)泊松圖像融合

    python實現(xiàn)泊松圖像融合

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)泊松圖像融合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 12步教你理解Python裝飾器

    12步教你理解Python裝飾器

    或許你已經(jīng)用過裝飾器,它的使用方式非常簡單但理解起來困難(其實真正理解的也很簡單),想要理解裝飾器,你需要懂點(diǎn)函數(shù)式編程的概念,python函數(shù)的定義以及函數(shù)調(diào)用的語法規(guī)則等,感興趣的小伙伴們可以參考一下
    2016-02-02
  • python實現(xiàn)生成Word、docx文件的方法分析

    python實現(xiàn)生成Word、docx文件的方法分析

    這篇文章主要介紹了python實現(xiàn)生成Word、docx文件的方法,結(jié)合實例形式分析了Python使用docx模塊操作word文件與docx文件的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08
  • Python控制臺輸出時刷新當(dāng)前行內(nèi)容而不是輸出新行的實現(xiàn)

    Python控制臺輸出時刷新當(dāng)前行內(nèi)容而不是輸出新行的實現(xiàn)

    今天小編就為大家分享一篇Python控制臺輸出時刷新當(dāng)前行內(nèi)容而不是輸出新行的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python實現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法

    python實現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法

    這篇文章主要介紹了python實現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法,實例分析了Python使用pil模塊進(jìn)行圖片處理的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • PyTorch 普通卷積和空洞卷積實例

    PyTorch 普通卷積和空洞卷積實例

    今天小編就為大家分享一篇PyTorch 普通卷積和空洞卷積實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python中ransac算法擬合圓的實現(xiàn)

    python中ransac算法擬合圓的實現(xiàn)

    RANSAC是一種用于從包含異常數(shù)據(jù)的樣本數(shù)據(jù)集中計算數(shù)學(xué)模型參數(shù)的算法,本文主要介紹了python中ransac算法擬合圓的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • Python?pandas找出、刪除重復(fù)的數(shù)據(jù)實例

    Python?pandas找出、刪除重復(fù)的數(shù)據(jù)實例

    在面試中很可能遇到給定一個含有重復(fù)元素的列表,刪除其中重復(fù)的元素,下面這篇文章主要給大家介紹了關(guān)于Python?pandas找出、刪除重復(fù)數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python可視化之seborn圖形外觀設(shè)置

    Python可視化之seborn圖形外觀設(shè)置

    這篇文章主要介紹了Python可視化之seborn圖形外觀設(shè)置,本文介紹seaborn圖形外觀、圖形縮放設(shè)置.具有一的的參考價值,需要的小伙伴可以參考一下
    2022-03-03

最新評論

邢台县| 湘阴县| 峨山| 陆良县| 疏勒县| 沈丘县| 鱼台县| 永清县| 南漳县| 罗平县| 佛教| 察雅县| 长寿区| 揭东县| 彭州市| 汨罗市| 双辽市| 罗江县| 贺州市| 蒙山县| 迁安市| 祥云县| 米林县| 五华县| 大化| 无锡市| 景洪市| 兴山县| 潼关县| 晴隆县| 喀喇沁旗| 织金县| 荆门市| 芷江| 濮阳市| 淮阳县| 民县| 茂名市| 申扎县| 汉中市| 苍溪县|