Home
๐ŸŽ€Hanbi๋Š” ๊ณต๋ถ€ ์ค‘๐ŸŽ€
Cancel

11~20๋ฒˆ ์ค‘์š” ํฌ์ธํŠธ

11~20๋ฒˆ ์ค‘์š” ํฌ์ธํŠธ 13๋ฒˆ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์ž๋ฆฟ์ˆ˜ ์ˆซ์ž์—ด์„ ๋ฐ›๊ณ , ๊ทธ ์ˆซ์ž์—ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ด ์ž์—ฐ์ˆ˜๋ฅผ ๊ตฌํ•ด๋ผ โ‡’ ํžŒํŠธ : ์ž์—ฐ์ˆ˜์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” 0~ 9๊นŒ์ง€์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด์„ ๋งŒ๋‚  ๋•Œ๋งˆ๋‹ค ์ฆ๊ฐ€์‹œํ‚จ๋‹ค #include <stdio.h> int ch[10]; int main(){ int i, d...

13๊ฐ• SpinLock ๊ตฌํ˜„

13๊ฐ• SpinLock ๊ตฌํ˜„ โญโญโญ ๋ฉด์ ‘์—์„œ ์ž์ฃผ ๋‚˜์˜ด (๊ตฌํ˜„ ํ•ด๋ณด์•˜๋Š”์ง€) โ‡’ ๋บ‘๋บ‘์ด (๋ฌดํ•œ๋Œ€๊ธฐ)๋ฅผ ํ•˜๋ฉด์„œ ์ปดํŒŒ์ผ ์•ค ์Šค์™‘ ํ•˜๋Š” ๋ฐฉ๋ฒ• using System; using System.Threading; using System.Threading.Tasks; namespace ServerCore { //lock์„ ํš๋“ํ•  ๋•Œ๊นŒ์ง€ ๋ฌดํ•œ์ • ๋Œ€๊ธฐ...

12๊ฐ• Lock ๊ตฌํ˜„ ์ด๋ก 

12๊ฐ• Lock ๊ตฌํ˜„ ์ด๋ก  ๋ฌธ์ œ ์ƒํ™ฉ ํ™”์žฅ์‹ค์— ์ด๋ฏธ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด? ํ•ด๊ฒฐ 1 - ๋‹ค ๋๋‚˜๊ณ  ๋‚˜์˜ฌ๋•Œ๊นŒ์ง€ ์กด๋ฒ„ํ•˜๊ธฐ ๋‹จ์  : ์‹œ๊ฐ„ ๋‚ญ๋น„ CPU ์ ์œ ์œจ์ด ํ™• ์˜ฌ๋ผ๊ฐ€๋ฒ„๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค = ์Šคํ•€๋ฝ์˜ ๊ฐœ๋… ํ•ด๊ฒฐ 2 - ์กฐ๊ธˆ ํ›„ ๋Œ์•„์˜ค๊ธฐ (๋‹ค๋ฅธ์ผ ํ•˜๋‹ค๊ฐ€) ๋‹จ์  : ํ™•์‹คํžˆ ๋‚ด๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋žœ๋ค์„ฑ์ด ์žˆ๋‹ค (๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋˜ ๋“ค์–ด๊ฐˆ์ˆ˜...

11๊ฐ• ๋ฐ๋“œ๋ฝ

11๊ฐ• ๋ฐ๋“œ๋ฝ ๋ฐ๋“œ๋ฝ ๋ฐœ์ƒ ์ƒํ™ฉ ์Šคํ† ๋ฆฌ๋กœ ํ’€์–ด๋ณด๊ธฐ ์‚ฌ๋žŒ์ด 2๋ช… ์žˆ๋‹ค 2๋ช…์ด ๋ชจ๋‘ ์ž๋ฌผ์‡ ๋ฅผ ํ•˜๋‚˜์”ฉ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค ์ž๋ฌผ์‡ ๊ฐ€ 2๊ฐœ ์žˆ๊ณ  ์ด๋ฅผ ๋ชจ๋‘ ํš๋“ํ•ด์•ผ ๋ฐฉ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค ์„œ๋กœ์˜ ์ž๋ฌผ์‡ ๋ฅผ ํš๋“ํ•ด์•ผ์ง€๋งŒ ํ•˜๋Š” ์ƒํ™ฉ class SessionManager{ static object lock_ = new object(); voi...

9๊ฐ• InterLocked

9๊ฐ• InterLocked ๋ถ€์ œ: ๊ฒฝํ•ฉ ์กฐ๊ฑด (Race condition) ๊ณต์œ  ๋ณ€์ˆ˜ ์ ‘๊ทผ์˜ ๋ฌธ์ œ์  class Program{ static int num = 0; static object obj = new object(); static void Tread_1(){ for(int i=0; i< 10000; i++){ ...

10๊ฐ• Lock ๊ธฐ์ดˆ

01๊ฐ• Lock ๊ธฐ์ดˆ int temp = number; ๋“ฑ๊ณผ ๊ฐ™์ด ์“ฐ๋Š” ์ž‘์—…์ด ๋“ค์–ด๊ฐ”์„ ์‹œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ถ€๋ถ„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ โ‡’ ์ž„๊ณ„์˜์—ญ (๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฐธ๊ฒฌํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ์ฝ”๋“œ ์˜์—ญ) ์ž„๊ณ„์˜์—ญ์„ ๋งŒ๋“ค๊ธฐ class Program{ static int num = 0; static object obj = new object(); sta...

8๊ฐ• ๋ฉ”๋ชจ๋ฆฌ ๋ฒ ๋ฆฌ์–ด

8๊ฐ• ๋ฉ”๋ชจ๋ฆฌ ๋ฒ ๋ฆฌ์–ด [1] ํ•˜๋“œ์›จ์–ด ์ตœ์ ํ™” ์ปดํŒŒ์ผ๋Ÿฌ๋„ ์ตœ์ ํ™”๋ฅผ ํ•˜์ง€๋งŒ, ํ•˜๋“œ์›จ์–ด๋„ ์ตœ์ ํ™”๋ฅผ ํ•œ๋‹ค class Program { static int x = 0; static int y = 0; static int r1 = 0; static int r2 = 0; //ํ•˜๋“œ์›จ...

7๊ฐ• ์บ์‹œ ์ด๋ก 

7๊ฐ• ์บ์‹œ ์ด๋ก  [1] ์บ์‹œ๋ž€ ๋ฌด์—‡์ผ๊นŒ [1] ์Šคํ† ๋ฆฌํ…”๋ง ์ƒํ™ฉ ๐Ÿด ๋ ˆ์Šคํ† ๋ž‘์—์„œ ์ฃผ๋ฌธ์„ ๋ฐ›์Œ ๐Ÿ”– ์ฃผ๋ฌธ ํ˜„ํ™ฉ์ด ์ ํžŒ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฃผ๋ฐฉ์— ๋“ค์–ด๊ฐ€๋ฉด ์ฃผ๋ฌธ์ด ์ ‘์ˆ˜๋˜๋Š” ๊ตฌ์กฐ ๐Ÿง‘๐Ÿง‘โ€๐Ÿฆฐ ์ฃผ๋ฌธ์„ ๋ฐ›๋Š” ์‹๋‹น ์ง์›์ด ์—ฌ๋Ÿฌ ๋ช…์ธ ์ƒํ™ฉ ๐Ÿง‘์‹๋‹น ์ง์›1์ด ์‚ฌ์ด๋‹ค๋ฅผ ์ฃผ๋ฌธ๋ฐ›์•˜๊ณ , ์ด ์‚ฌ๋žŒ์ด ๋‹ค๋ฅธ ์ผ์„ ํ•˜๋Ÿฌ๊ฐ€๋Š” ๋„์ค‘์— ๊ฐ™์€ ํ…Œ์ด๋ธ”์—์„œ ๐Ÿง‘โ€๐Ÿฆฐ์‹๋‹น ์ง์›2์—๊ฒŒ ์‚ฌ์ด๋‹ค ๋ง๊ณ  ์ฝœ...

6๊ฐ• ์ปดํŒŒ์ผ๋Ÿฌ ์ตœ์ ํ™”

6๊ฐ• ์ปดํŒŒ์ผ๋Ÿฌ ์ตœ์ ํ™” [1] ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ์—์„œ ์ „์—ญ ๋ณ€์ˆ˜ ์ ‘๊ทผํ•˜๊ธฐ program.cs ์—์„œ ๋‹ค์Œ ์ฝ”๋”ฉ namespace ServerCore { class Program { //[2๊ฐ•] static bool _stop = false; static void ThreadMain() { ...

์ฝ”ํ…Œ ์Šคํ„ฐ๋”” 1-10๋ฒˆ ๋ฌธ์ œ ํ’€์ด

์ฝ”ํ…Œ ์Šคํ„ฐ๋”” 1-10๋ฒˆ ๋ฌธ์ œ ํ’€์ด [0] ์ง„์•ฝ์ˆ˜ ์ง„์•ฝ์ˆ˜ ๊ฐฏ์ˆ˜ ๊ตฌํ•˜๊ธฐ ์ง„์•ฝ์ˆ˜ : ์ž๊ธฐ ์ž์‹ ์„ ๋บ€ ์•ฝ์ˆ˜๋“ค [1] ์ตœ๋Œ€, ์ตœ์†Œ๊ฐ’ min, max ๊ฐ’ ๊ตฌํ•  ๋•Œ ํŒ intํ˜•์˜ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ : -214000000 intํ˜•์˜ ๊ฐ€์žฅ ํฐ ์ˆ˜: 214000000 //์ตœ์†Œ๊ฐ’, ์ตœ๋Œ€๊ฐ’ ๊ตฌํ•˜๊ธฐ for(i=1; i<=n; i++){ cin&...