๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ (2)

Unfazedโ—๏ธ๐ŸŽฏ

[Java] ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ JVM์˜ ์Šค๋ ˆ๋“œ ๊ด€๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ์ดํ•ดํ•˜๋Š” ์Šค๋ ˆ๋“œ start(), run() ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด

Java์—์„œ start() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์™€ run() ๋ฉ”์„œ๋“œ ์ง์ ‘ ํ˜ธ์ถœ์˜ ๋ฌธ์ œ์ ์„ ์•Œ์•„๋ณด์ž. 1. ์Šค๋ ˆ๋“œ ์‹คํ–‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ํ•ต์‹ฌ ์ฐจ์ดstart() ๋ฉ”์„œ๋“œ์˜ ์—ญํ• ์ƒˆ๋กœ์šด ํ˜ธ์ถœ ์Šคํƒ(Call Stack)์„ ์ƒ์„ฑํ•˜์—ฌ JVM์ด ํ•ด๋‹น ์Šค๋ ˆ๋“œ๋ฅผ ์Šค์ผ€์ค„๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ start0()๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉฐ, ์ด๋Š” OS ์ˆ˜์ค€์—์„œ ์‹ค์ œ ์Šค๋ ˆ๋“œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ• ๋‹นํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. run() ์ง์ ‘ ํ˜ธ์ถœ์˜ ๋ฌธ์ œ์ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์Šค๋ ˆ๋“œ์˜ ํ˜ธ์ถœ ์Šคํƒ์—์„œ ๋™๊ธฐ์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์ด๋Š” ๋‹จ์ˆœ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์˜ ํ•ต์‹ฌ์ธ ๋ณ‘๋ ฌ ์‹คํ–‰์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.// ์ž˜๋ชป๋œ ์‚ฌ์šฉ ์˜ˆ์‹œThread myThread = new MyCustomThread();myThrea..

Java 2025. 2. 7. 15:29
๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ์ปจํ…์ŠคํŠธ ์Šค์œ„์น˜, ์Šค์ผ€์ค„๋ง, ํ”„๋กœ์„ธ์Šค vs ์Šค๋ ˆ๋“œ

1. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์ด ํ•„์š”ํ•œ ์ด์œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์ด ํ•„์š”ํ•œ ์ฃผ์š” ์ด์œ ๋Š” ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ์‘๋‹ต์„ฑ(Responsiveness)๊ณผ ์„ฑ๋Šฅ(Performance)์ด๋‹ค.1.1. ์‘๋‹ต์„ฑ(Responsiveness)์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ธก๋ฉด์—์„œ ์‘๋‹ต์„ฑ์€ ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค.์‚ฌ๋ก€ 1: ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์—์„œ ๋Œ€๋Ÿ‰ ๊ตฌ๋งค ์š”์ฒญ์ด DB ์ž‘์—…์„ ์ง€์—ฐ์‹œํ‚ฌ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ์ฐจ๋‹จ๋จ → ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์œผ๋กœ ๊ฐ ์š”์ฒญ์„ ๋ณ„๋„ ์Šค๋ ˆ๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋™์‹œ ์‘๋‹ต ๊ฐ€๋Šฅ์‚ฌ๋ก€ 2: ๋™์˜์ƒ ์žฌ์ƒ ์•ฑ๋ฉ”์ธ ์Šค๋ ˆ๋“œ: UI ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์›Œ์ปค ์Šค๋ ˆ๋“œ: ๋ฏธ๋””์–ด ๋””์ฝ”๋”ฉ ๋ฐ ์ถœ๋ ฅ → ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜ ์ง€์—ฐ ์—†๋Š” ๋ถ€๋“œ๋Ÿฌ์šด ๊ฒฝํ—˜ ์ œ๊ณต์ด๋Ÿฌํ•œ ๋™์‹œ์„ฑ(Concurrency)์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ฌ์ง€์–ด ๋‹จ์ผ ์ฝ”์–ด์—์„œ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.1.2. ์„ฑ๋Šฅ(Performa..