华南俳烁实业有限公司

python

當前位置:中華考試網(wǎng) >> python >> python編程基礎 >> 文章內(nèi)容

python中的select模塊是什么?

來源:中華考試網(wǎng)  [2020年9月28日]  【

  Python中的select模塊專注于I/O多路復用,提供了select poll epoll三個方法(其中后兩個在Linux中可用,windows僅支持select),另外也提供了kqueue方法(freeBSD系統(tǒng))

  select方法

  進程指定內(nèi)核監(jiān)聽哪些文件描述符(最多監(jiān)聽1024個fd)的哪些事件,當沒有文件描述符事件發(fā)生時,進程被阻塞;當一個或者多個文件描述符事件發(fā)生時,進程被喚醒。

  當我們調(diào)用select()時:

  1、上下文切換轉換為內(nèi)核態(tài)

  2、將fd從用戶空間復制到內(nèi)核空間

  3、內(nèi)核遍歷所有fd,查看其對應事件是否發(fā)生

  4、如果沒發(fā)生,將進程阻塞,當設備驅(qū)動產(chǎn)生中斷或者timeout時間后,將進程喚醒,再次進行遍歷

  5、返回遍歷后的fd

  6、將fd從內(nèi)核空間復制到用戶空間

  fd:file descriptor 文

python學習課程預約提醒

  • 地區(qū):
  • 姓名:
  • 手機:
件描述符

  fd_r_list, fd_w_list, fd_e_list = select.select(rlist, wlist, xlist, [timeout])

  參數(shù): 可接受四個參數(shù)(前三個必須)

  rlist: wait until ready for reading

  wlist: wait until ready for writing

  xlist: wait for an “exceptional condition”

  timeout: 超時時間

  返回值:三個列表

  select方法用來監(jiān)視文件描述符(當文件描述符條件不滿足時,select會阻塞),當某個文件描述符狀態(tài)改變后,會返回三個列表

  1、當參數(shù)1 序列中的fd滿足“可讀”條件時,則獲取發(fā)生變化的fd并添加到fd_r_list中

  2、當參數(shù)2 序列中含有fd時,則將該序列中所有的fd添加到 fd_w_list中

  3、當參數(shù)3 序列中的fd發(fā)生錯誤時,則將該發(fā)生錯誤的fd添加到 fd_e_list中

  4、當超時時間為空,則select會一直阻塞,直到監(jiān)聽的句柄發(fā)生變化

  當超時時間 = n(正整數(shù))時,那么如果監(jiān)聽的句柄均無任何變化,則select會阻塞n秒,之后返回三個空列表,如果監(jiān)聽的句柄有變化,則直接執(zhí)行。

責編:hym
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
南和县| 台中县| 清水县| 诸城市| 英超| 酉阳| 湟源县| 汶川县| 富宁县| 宕昌县| 类乌齐县| 苏尼特左旗| 酉阳| 汉寿县| 泗洪县| 庆安县| 札达县| 喀喇沁旗| 琼结县| 介休市| 伊宁市| 临沧市| 凤翔县| 甘泉县| 南涧| 田东县| 新源县| 龙井市| 翼城县| 宁阳县| 漳浦县| 衡南县| 建湖县| 通河县| 瑞安市| 清河县| 敦煌市| 徐闻县| 永寿县| 馆陶县| 西乌|