Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

async, sync, serial, concurrent에 대해 설명해주세요. #20

Open
youn9k opened this issue Jan 4, 2025 · 4 comments
Open

async, sync, serial, concurrent에 대해 설명해주세요. #20

youn9k opened this issue Jan 4, 2025 · 4 comments

Comments

@youn9k
Copy link
Collaborator

youn9k commented Jan 4, 2025

  • sync vs. async
    • 큐에서 예약중인 작업을 처리할 때 기다리냐 마냐를 이야기 하는 것.
    • (큐 이야기를 함께 하는 것이 좋은듯)
  • serial vs. concurrent
    • 작업을 직렬로 순서대로 처리할 것인지, 작업을 여러 스레드에서 분산처리 할 것인지를 이야기 하는 것
    • (마찬가지로 작업 이야기를 함께하기)
@Kiyoung-Kim-57
Copy link
Collaborator

동기와 비동기

동기와 비동기는 작업 중 대기가 발생하는지 여부에 따라 구분할 수 있다.

동기는 하나의 작업이 끝날 때까지 다음 작업이 시작되지 않는 방식이다. 작업이 완료될 때까지 현재 스레드가 block 되어 작업 완료를 기다리고, 완료되면 결과를 반환받아 작업을 이어나가게 된다. 순차적인 실행 덕분에 코드 흐름이 직관적이고 비동기에 비해 Thread-safe한 작업이 가능하다.
비동기는 작업 완료를 기다리지 않고 다른 작업을 병렬적으로 할 수 있는 방식이다. 비동기는 병렬적인 진행 덕분에 처리 속도가 개선되지만 병렬적인 진행 때문에 데이터 경합 문제가 발생할 수 있다.

직렬과 동시

직렬과 동시는 여러 작업을 처리하는 순서와 방식으로 구분할 수 있다.

직렬은 여러 작업을 순차적으로 실행시키는 방식을 의미한다.
반면 동시는 여러 작업을 병렬적으로 실행되는 방식을 의미한다.

@hsw1920
Copy link
Owner

hsw1920 commented Jan 8, 2025

Q. sync vs. async
A.
sync와 async의 차이는 작업을 수행하는 방식에 차이가 있습니다.
sync는 작업을 스레드에게 명령하고 그 작업이 끝나기를 기다렸다가 다음 작업을 진행해야합니다.
async는 작업을 스레드에게 명령하고 그 작업이 끝나기를 기다리지 않고 다음 작업을 진행할 수 있습니다.
serial과 concurrency는 작업을 처리하는 순서에 차이가 있습니다.

Q. serial vs. concurrency
A.
serial 큐의 경우 작업을 1개의 스레드에서 순차적으로 처리하는 작업에 사용되며 순서가 중요한 작업을 처리할 때 사용하게 됩니다.
반면 concurrency의 경우 작업을 다른 여러 스레드에서 처리하도록 할 때 사용하며 병렬적으로 동시에 실행될 수 있습니다.

@0Hooni
Copy link
Collaborator

0Hooni commented Jan 9, 2025

async와 sync는 작업이 실행되는 방식에 대한 개념으로, 동기는 작업을 순차적으로 실행하며 이전 작업이 완료될 때까지 다음 작업이 기다리는 반면, 비동기는 작업을 병렬로 실행하여 이전 작업이 끝나는것을 기다리지 않고 다음 작업을 진행할 수 있는 방식입니다.

serial과 concurrent는 여러 작업을 처리하는 방식으로, 직렬은 하나씩 순서대로 실행하는 반면, 병렬을 여러 작업을 동시에 처리하는 방식입니다.

@youn9k
Copy link
Collaborator Author

youn9k commented Jan 10, 2025

Sync vs Async

동기는 작업의 결과를 기다린 다음 다음 작업을 수행하는 방식이며, 비동기는 작업의 결과를 기다리지 않고 다음 작업을 수행하는 방식입니다.

Serial vs Concurrent

Serial은 여러 작업을 한 스레드에 순차적으로 맡기는 방식이고, Concurrent는 여러 작업을 여러 스레드에 할당해 동시에 처리하는 방식입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants