반응형
동기(Synchoronous)와 비동기(Asynchoronous) 프로그래밍은 프로그램이 실행되는 방식과 동작 방식에 따라 구분되는 개념이다.
동기 프로그래밍
동기 프로그래밍은 작업들이 순차적으로 실행되며 하나의 작업이 완료되기를 기다렸다가 다음 작업을 실행하는 방식이다.
즉, 한 작업이 끝나기 전까지 다음 작업은 실행되지 않는다 이렇게 순서대로 작업이 실행되기 때문에 프로그램의 흐름이 예측 가능하고 간단하다.
def print_numbers():
for i in range(1, 6):
print(i)
def print_hello():
print("Hello!")
print_numbers() // 먼저 실행된 후
print_hello() // 다음 실행된다
비동기 프로그래밍
비동기 프로그래밍은 작업들이 동시에 실행되거나, 하나의 작업이 완료되기를 기다리지 않고 다음 작업을 실행하는 방식이다.
비동기 작업은 별도의 스레드나 이벤트 루프를 활용하여 백그라운드에서 실행되는 경우가 많다. 이렇게 비동기 방식으로 작업을 처리하면 다른 작업을 기다리는 동안 시스템 자원을 효율적으로 활용할수 있으며 복잡한 작업을 동시에 처리할수 있다.
import asyncio
async def print_numbers():
for i in range(1, 6):
print(i)
await asyncio.sleep(1)
async def print_hello():
await asyncio.sleep(0.5)
print("Hello!")
async def main():
await asyncio.gather(print_numbers(), print_hello())
asyncio.run(main())
// 숫자는 1초 마다 실행되고
// 문자는 0.5초 마다 실행되서
// 1
// HELLO
// 6
// HELLo
// 이런식으로 출력된다.
반응형
'간단한 공부' 카테고리의 다른 글
[공부] jQuery - 제이쿼리 란? (0) | 2023.07.26 |
---|---|
[공부] 바닐라 JS(Vanilla JS) 란? (0) | 2023.07.26 |
[공부] Float 사용시 발생하는 이슈, 해결법 (0) | 2023.07.26 |
[공부] 시멘틱 태그(Semantic Tag) 란? (0) | 2023.07.26 |
[공부] 웹표준, 웹접근성 이란? (0) | 2023.07.26 |