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

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

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

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

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

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

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

利用poll創(chuàng)建對(duì)一個(gè)多路文件復(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對(duì)象p
  p=select.poll()
  #利用poll對(duì)象p對(duì)需要監(jiān)視的文件描述符進(jìn)行注冊(cè)
  p.register(fromfd1,READ_ONLY)
  p.register(fromfd2,READ_ONLY)
  while True:
  #輪詢已經(jīng)注冊(cè)的文件描述符是否已經(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()

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

相關(guān)文章

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

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

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

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

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

    12步教你理解Python裝飾器

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

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

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

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

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

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

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

    PyTorch 普通卷積和空洞卷積實(shí)例

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

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

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

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

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

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

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

最新評(píng)論

哈密市| 绥芬河市| 武陟县| 凤山市| 揭阳市| 肇东市| 阿克陶县| 镇江市| 罗定市| 伊吾县| 许昌县| 如皋市| 诸城市| 舟山市| 宁蒗| 防城港市| 合作市| 乐安县| 大田县| 天峨县| 迁安市| 五指山市| 蒙阴县| 名山县| 郧西县| 淮阳县| 故城县| 巩留县| 阳江市| 永靖县| 宿迁市| 威信县| 万州区| 收藏| 松滋市| 沁源县| 普兰店市| 大同市| 棋牌| 巍山| 巴林右旗|