ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Java> Thread ์ƒ์†๊ณผ Runnable ๊ตฌํ˜„์˜ ์ฐจ์ด์  ๋ฐ ๋™๊ธฐํ™” ๋ฉ”์†Œ๋“œ ์„ ์–ธ
    JAVA 2025. 3. 4. 20:28
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ”น Thread์™€ Runnable์˜ ์ฐจ์ด

    1๏ธโƒฃ Thread๋ฅผ ์ƒ์†ํ•˜๋Š” ๊ฒฝ์šฐ

     

    โœ… ํŠน์ง•

    • Thread ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์ƒ์†๋ฐ›์Œ.
    • run() ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์—ฌ ์‹คํ–‰ํ•  ์ฝ”๋“œ ์ž‘์„ฑ.
    • start() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด run()์ด ์‹คํ–‰๋จ.

    โŒ ๋‹จ์ 

    • ์ž๋ฐ”๋Š” ๋‹ค์ค‘ ์ƒ์†์„ ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ์ด๋ฏธ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ๋‹ค๋ฉด Thread๋ฅผ ์ƒ์†ํ•  ์ˆ˜ ์—†์Œ.
    • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด Thread ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฏ€๋กœ ์žฌ์‚ฌ์šฉ์ด ์–ด๋ ต๊ณ  ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Œ.

     

     

     

     

    2๏ธโƒฃ Runnable์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ

     
     

    โœ… ํŠน์ง•

    • Runnable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  run() ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ.
    • Thread ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Runnable ๊ตฌํ˜„์ฒด๋ฅผ ์ธ์ž๋กœ ๋„˜๊ฒจ์ค˜์•ผ ํ•จ.

    โ‡๏ธ ์žฅ์ 

    • ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ์Œ(์œ ์—ฐ์„ฑ ๋†’์Œ).
    • ์“ฐ๋ ˆ๋“œ ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•จ.

     

     

     

     

    3๏ธโƒฃ ๋™๊ธฐํ™” ๋ฉ”์†Œ๋“œ(Synchronized Method)๋ž€?

    ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ์ž์›์— ์ ‘๊ทผํ•˜๋ฉด ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋™๊ธฐํ™”(Synchronization) ์ด๋‹ค.

     

     

    ๐Ÿ”น ๋™๊ธฐํ™” ๋ฉ”์†Œ๋“œ ์„ ์–ธ ๋ฐฉ๋ฒ•

    โœ… synchronized ํ‚ค์›Œ๋“œ๋ฅผ ๋ฉ”์„œ๋“œ์— ๋ถ™์ด๋ฉด, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€

    ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

     

     

    ๐Ÿ”น ๋™๊ธฐํ™” ๋ฉ”์†Œ๋“œ ์˜ˆ์ œ

    ๐Ÿ“Œ ์Šค๋ ˆ๋“œ ๊ฐ„ ์ถฉ๋Œ ์—†์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋จ.
    synchronized๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— count๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ 1, 2, 3, ... ์ˆœ์„œ๊ฐ€ ๊ผฌ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

     

     

    ๐Ÿ”น ๋™๊ธฐํ™” ๋ธ”๋ก (Synchronized Block)

    ๋งŒ์•ฝ ์ „์ฒด ๋ฉ”์„œ๋“œ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ด๋Ÿด ๋•Œ๋Š” ๋™๊ธฐํ™” ๋ธ”๋ก์„ ์‚ฌ์šฉํ•ด์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Designed by Tistory.