Skip to content

own-playground/io-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I/O Models

  • Synchronous I/O
    • Blocking: Blocking I/O
    • Non-blocking: Non-blocking I/O
  • Asynchronous I/O
    • Blocking: I/O Multiplexing(select, poll, epoll)
    • Non-blocking: Asynchronous I/O(a.k.a. AIO)

Synchrounous & Blocking

===== [Sync][Blocking] - 시작 =====
메인 스레드는 결과를 기다리는 동안 블로킹됩니다. - 시작
동기 작업 시작
동기 작업 종료
메인 스레드는 결과를 기다리는 동안 블로킹됩니다. - 종료
complete execute name = 김철수
===== [Sync][Blocking] - 종료 =====

Synchrounous & Non-blocking

===== [Sync][Non-Blocking] - 시작 =====
[polling - 1] 메인 스레드는 다른 작업을 수행할  있음
[비동기 작업] 작업 진행 ... 1
[polling - 2] 메인 스레드는 다른 작업을 수행할  있음
[polling - 3] 메인 스레드는 다른 작업을 수행할  있음
[비동기 작업] 작업 진행 ... 2
[polling - 4] 메인 스레드는 다른 작업을 수행할  있음
[비동기 작업] 작업 진행 ... 3
[polling - 5] 메인 스레드는 다른 작업을 수행할  있음
[비동기 작업] 작업 진행 ... 4
[비동기 작업] 작업 진행 ... 5
[polling - 6] 메인 스레드는 다른 작업을 수행할  있음
complete execute name = 홍길동
===== [Sync][Non-Blocking] - 종료 =====

Asynchronous & Blocking

===== [Async][Blocking] - 시작 =====
비동기 작업 시작.
메인 스레드는 결과를 기다리는 동안 블로킹됩니다.
비동기 작업 진행 ... 1
비동기 작업 진행 ... 2
비동기 작업 진행 ... 3
비동기 작업 진행 ... 4
비동기 작업 진행 ... 5
complete execute name = 김철수
===== [Async][Blocking] - 종료 =====

Asynchronous & Non-blocking

===== [Async][Non-Blocking] - 시작 =====
메인 스레드는 비동기 작업의 완료를 기다리지 않고 계속 실행됩니다.
[비동기 작업] 작업B 진행중... 1
[비동기 작업] 작업A 진행중... 1
[비동기 작업] 작업B 진행중... 2
>> [메인 스레드] 작업  진행중... 1
[비동기 작업] 작업B 진행중... 3
[비동기 작업] 작업A 진행중... 2
[비동기 작업] 작업B 진행중... 4
[비동기 작업] 작업B 진행중... 5
>> [메인 스레드] 작업  진행중... 2
[비동기 작업] 작업A 진행중... 3
[비동기 작업] 작업A 진행중... 4
>> [메인 스레드] 작업  진행중... 3
[비동기 작업] 작업A 진행중... 5
------ 모든 비동기 작업 완료 ------
complete futureA result = 김철수
complete futureB result = 이영희
>> [메인 스레드] 작업  진행중... 4
>> [메인 스레드] 작업  진행중... 5
메인 스레드 작업 완료
===== [Async][Non-Blocking] - 종료 =====

About

[practice] Implement the most prevalent I/O models

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages