CS

๋™๊ธฐ์™€ ๋น„๋™๊ธฐ, ๋ธ”๋กํ‚น๊ณผ ๋…ผ๋ธ”๋กํ‚น

oneyenee 2024. 2. 13. 22:49

๐Ÿ’ก ๋ธ”๋กํ‚น(Blocking) VS  ๋…ผ๋ธ”๋กํ‚น(Non- Blocking)

๋ธ”๋ก/๋…ผ๋ธ”๋ก ๊ฐœ๋…์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„์ด ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค. 

๋ธ”๋กํ‚น์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ์•„๋ž˜์˜ ์šฉ์–ด๋ฅผ ์ •ํ™•ํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค.

 

 

โœ” ์ œ์–ด๊ถŒ

  • ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๊ถŒ๋ฆฌ
  • ์ œ์–ด๊ถŒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋ธ”๋กํ‚น๊ณผ ๋…ผ๋ธ”๋กํ‚น์˜ ์ฐจ์ด๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

 

๋‘ ๊ฐœ์˜ ํ•จ์ˆ˜ A, B ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. Aํ•จ์ˆ˜๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค๊ณ  ํ•  ๋•Œ, ๋ธ”๋กํ‚น๊ณผ ๋…ผ๋ธ”๋กํ‚น์˜ ์ฐจ์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

1) ๋ธ”๋กํ‚น

  • ๋ฉ”์ธ ํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜ A์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ์ฃผ๋ฉฐ A๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • A ํ•จ์ˆ˜๋Š” ์‹คํ–‰๋˜๊ณ  A ํ•จ์ˆ˜๊ฐ€ ๋๋‚  ๋•Œ ๊นŒ์ง€ Bํ•จ์ˆ˜์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š๋Š”๋‹ค.
  • A ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด B ํ•จ์ˆ˜์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ์ฃผ๊ณ  ํ˜ธ์ถœํ•œ๋‹ค.

 

์ฆ‰, ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์˜ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ๋๋‚  ๋•Œ ๊นŒ์ง€ ์ œ์–ด๊ถŒ์„ ๊ณ„์† ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ ํ•จ์ˆ˜์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ฉด ๋ธ”๋กํ‚น ๋ฐฉ์‹์ด๋‹ค.

 

 

2) ๋…ผ๋ธ”๋กํ‚น

  • ๋ฉ”์ธ ํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜ A์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ์ฃผ๋ฉฐ A๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • A ํ•จ์ˆ˜๋Š” ์‹คํ–‰๋˜๊ณ  ๊ณง๋ฐ”๋กœ ์ œ์–ด๊ถŒ์„ returnํ•œ๋‹ค.
  • A ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์‹œ์—, ๋ฉ”์ธ ํ•จ์ˆ˜๊ฐ€ ์ œ์–ด๊ถŒ์„ B ํ•จ์ˆ˜์—๊ฒŒ ์ฃผ๋ฉฐ ํ˜ธ์ถœํ•œ๋‹ค.

 

์ฆ‰, ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์˜ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ๋๋‚˜์ง€ ์•Š๊ณ  ์‹คํ–‰ ํ›„ ๊ณง๋ฐ”๋กœ ์ œ์–ด๊ถŒ์„ returnํ•˜์—ฌ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋„ ์‹คํ–‰๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์ด ๋…ผ๋ธ”๋กํ‚น ๋ฐฉ์‹์ด๋‹ค.

 

 

 


 

 

๐Ÿ’ก ๋™๊ธฐ(Synchronous)์™€ ๋น„๋™๊ธฐ(Asynchronous)

๋ธ”๋กํ‚น๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ตฌ๋ถ„๋˜์ง€ ์•Š์œผ๋ฉฐ, ์ถ”์ƒ์ ์ธ ํ–‰์œ„์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค.

 

๋™๊ธฐ ๋น„๋™๊ธฐ๋Š” ๋ธ”๋ก๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

1) ๋™๊ธฐ

๋ธ”๋กํ‚น๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

๋ธ”๋กํ‚น์˜ ๊ฒฝ์šฐ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š์ง€๋งŒ, ๋™๊ธฐ๋Š” ํ™•์ธ์„ ํ•œ๋‹ค.

A ํ•จ์ˆ˜๊ฐ€ B ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๋’ค, B ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๊ณ„์† ํ™•์ธํ•˜๊ณ  ์‹ ๊ฒฝ์“ฐ๋Š” ๊ฒƒ์ด ๋™๊ธฐ์ด๋‹ค.

 

์ฆ‰, ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ ๋ฐ ์ข…๋ฃŒ๋ฅผ ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜๋„ ํ•จ๊ป˜ ์‹ ๊ฒฝ์“ฐ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

 

2) ๋น„๋™๊ธฐ

๊ฒฐ๊ณผ ํ™•์ธ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ณ„์† ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

A ํ•จ์ˆ˜๊ฐ€ B ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๋’ค, A ํ•จ์ˆ˜๋Š” B ํ•จ์ˆ˜๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ  ์ œ ํ•  ์ผ์„ ํ•˜๊ณ  B ํ•จ์ˆ˜ ๋˜ํ•œ ์ œ ํ•  ์ผ์„ ํ•œ๋‹ค.

 

์ฆ‰, ํ˜ธ์ถœ๋œ ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ ๋ฐ ์ข…๋ฃŒ๋ฅผ ํ˜ผ์ž ์•Œ์•„์„œ ์‹ ๊ฒฝ์“ฐ๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.