<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>멀티스레딩 on Korobopolly's Dev Blog</title><link>https://korobopolly.github.io/tags/%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%94%A9/</link><description>Recent content in 멀티스레딩 on Korobopolly's Dev Blog</description><generator>Hugo</generator><language>ko</language><lastBuildDate>Mon, 16 Feb 2026 13:16:00 +0900</lastBuildDate><atom:link href="https://korobopolly.github.io/tags/%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%94%A9/index.xml" rel="self" type="application/rss+xml"/><item><title>Java 동시성 프로그래밍 - ExecutorService, 동기화, Context Switching</title><link>https://korobopolly.github.io/posts/java-concurrency/</link><pubDate>Mon, 16 Feb 2026 13:16:00 +0900</pubDate><guid>https://korobopolly.github.io/posts/java-concurrency/</guid><description>&lt;h2 id="동시성-프로그래밍이란"&gt;동시성 프로그래밍이란&lt;/h2&gt;
&lt;p&gt;현대 애플리케이션은 여러 작업을 동시에 처리해야 합니다. 파일 업로드를 받으면서 DB 쿼리를 실행하고, API 요청을 처리하는 등 멀티태스킹은 필수입니다. Java는 강력한 동시성 라이브러리를 제공하여 이런 작업을 안전하고 효율적으로 처리할 수 있게 합니다.&lt;/p&gt;
&lt;p&gt;이 글에서는 Thread 기본부터 ThreadPool, 동기화 메커니즘까지 실전 예제와 함께 알아봅니다.&lt;/p&gt;
&lt;h2 id="thread와-runnable-기본"&gt;Thread와 Runnable 기본&lt;/h2&gt;
&lt;h3 id="thread-생성-방법"&gt;Thread 생성 방법&lt;/h3&gt;
&lt;p&gt;Java에서 스레드를 생성하는 두 가지 방법이 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Thread 클래스 상속&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#cdd6f4;background-color:#1e1e2e;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f38ba8"&gt;public&lt;/span&gt; &lt;span style="color:#f38ba8"&gt;class&lt;/span&gt; &lt;span style="color:#f9e2af"&gt;MyThread&lt;/span&gt; &lt;span style="color:#f38ba8"&gt;extends&lt;/span&gt; Thread {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#89b4fa;font-weight:bold"&gt;@Override&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f38ba8"&gt;public&lt;/span&gt; &lt;span style="color:#f38ba8"&gt;void&lt;/span&gt; &lt;span style="color:#89b4fa"&gt;run&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#89b4fa"&gt;out&lt;/span&gt;.&lt;span style="color:#89b4fa"&gt;println&lt;/span&gt;(&lt;span style="color:#a6e3a1"&gt;&amp;#34;Thread 실행: &amp;#34;&lt;/span&gt; &lt;span style="color:#89dceb;font-weight:bold"&gt;+&lt;/span&gt; Thread.&lt;span style="color:#89b4fa"&gt;currentThread&lt;/span&gt;().&lt;span style="color:#89b4fa"&gt;getName&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6c7086;font-style:italic"&gt;// 사용&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MyThread thread &lt;span style="color:#89dceb;font-weight:bold"&gt;=&lt;/span&gt; &lt;span style="color:#cba6f7"&gt;new&lt;/span&gt; MyThread();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;thread.&lt;span style="color:#89b4fa"&gt;start&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2. Runnable 인터페이스 구현 (권장)&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>