비동기 프로그래밍
2144 단어 softwareasynciopythonprogramming
대부분의 시간에 사용되는 동기식 접근 방식의 문제점은 프로그램이 추가 작업을 진행하기 전에 전용 소스에서 데이터 입력을 기다려야 한다는 것입니다. WebSocket에 연결하고 동기식 소프트웨어를 사용하여 거래소에서 틱 데이터 업데이트 또는 공개 주문 업데이트를 받는 것은 거의 불가능합니다.
비동기 프로그래밍을 통해 데이터 입력 대기를 건너뛰고 제어 스트림 또는 데이터 처리 스트림으로 진행할 수 있습니다. 이 접근 방식은 소프트웨어 속도와 성능을 근본적으로 향상시킵니다.
asyncio python 라이브러리를 사용하여 비동기 애플리케이션을 빌드합니다.
비동기 소프트웨어 구축을 시작하려면 몇 가지 개념을 배워야 합니다.
첫째, 함수는 자바스크립트에서와 같이 비동기 단어로 비동기로 표시됩니다. 예시:
async def my_function()
둘째, 대기 단어를 사용하여 한 스트림에서 다른 스트림으로 제어를 전환할 수 있는 위치를 프로그램에 알립니다. 예시:
await asyncio.sleep(0)
이 코드 줄은 데이터 입력이나 일부 긴 계산을 기다리지 않도록 프로그램에 지시하는 것 외에는 아무 것도 하지 않으므로 프로그램이 다른 작업으로 전환할 수 있습니다.
셋째, 비동기식 소프트웨어를 구축할 때 기능뿐만 아니라 작업도 운영합니다. 작업에는 내부에 하나 이상의 기능이 포함될 수 있습니다.
예시:
async def input_func():
pass
async def input_task():
await asyncio.sleep(0)
await self.input_func()
그리고 마지막으로 루프입니다. 우리의 작업은 '제어 스트림'이라고 할 수 있는 루프 내에서 실행됩니다.
예시:
ioloop = asyncio.get_event_loop()
tasks = [ioloop.create_task(input_task()), ioloop.create_task(another_task())]
wait_tasks = asyncio.wait(tasks)
ioloop.run_until_complete(wait_tasks)
이것은 간단한 비동기 애플리케이션의 예입니다. this GitHub repo에서 찾을 수 있습니다.
Reference
이 문제에 관하여(비동기 프로그래밍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jungle_sven/asynchronous-programming-4353텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)