29 เมษายน 2558

Published 4/29/2558 by with 0 comment

Asynchronous I/O กับ Python ด้วย asyncio

สวัสดีผู้อ่านทุกท่านครับ ใน Python 3.4 ได้มีการเปลี่ยนแปลงครั้งสำคัญ นั้นคือ การรองรับ Asynchronous I/O ครับ เราสามารถใช้ Asynchronous I/O กับ Python ได้ด้วย asyncio บทความนี้จะพาผู้อ่านไปแนะนำการใช้ Asynchronous I/O กับ Python ด้วย asyncio กันครับ

ไลบรารี asyncio
เป็นไลบรารีมาตรฐานใหม่ของภาษา Python ทำให้ภาษา Python รองรับ Asynchronous I/O ใน Python 3.4 ถึงแม้จะเพิ่งมีใน Python 3.4 ทาง Python Software Foundation ได้ออกไลบรารี asyncio สำหรับ Python 3.3 ออกมาให้ติดตั้งด้วยครับ

วิธีการติดตั้งไลบรารี asyncio สำหรับ Python 3.3 เท่านั้น
สำหรับผู้ใช้ Windows เข้าไปโหลดไฟล์ whl มาติดตั้งได้จาก https://pypi.python.org/pypi/asyncio/
สำหรับผู้ใช้งาน Mac OS , Linux โหลดไฟล์โค้ดมาจาก https://pypi.python.org/pypi/asyncio/ โหลดไฟล์ tar.gz แล้วทำการแตกไฟล์เสร็จแล้วใช้คำสั่ง
$ sudo python setup.py install

ตัวอย่างการใช้งานไลบรารี asyncio

[python]
import asyncio

@asyncio.coroutine
def create():
yield from asyncio.sleep(3.0)
print("(1) create file")

@asyncio.coroutine
def write():
yield from asyncio.sleep(1.0)
print("(2) write into file")

@asyncio.coroutine
def close():
print("(3) close file")

@asyncio.coroutine
def test():
asyncio.async(create())
asyncio.async(write())
asyncio.async(close())
yield from asyncio.sleep(3.0)
loop.stop()

loop = asyncio.get_event_loop()
asyncio.async(test())
loop.run_forever()
print("Pending tasks at exit: %s"

% asyncio.Task.all_tasks(loop))
loop.close()
[/python]

ผลลัพธ์
(3) close file
(2) write into file
(1) create file
Pending tasks at exit: set()

อ่านเอกสารการใช้งานได้ที่ https://docs.python.org/3/library/asyncio.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)