🧵 스레드(Thread)란?

<aside> 💡

스레드프로세스 내부에서 실행되는 작은 실행 단위로, 프로세스 내에서 여러 작업을 동시에 처리할 수 있게 도와줍니다. 스레드는 하나의 프로세스가 여러 개의 작업을 병렬로 처리하기 위한 도구입니다.

즉, 하나의 프로그램이 여러 작업을 한꺼번에 처리할 수 있게 하여

병렬 처리(Parallelism)를 가능하게 합니다.

</aside>

📝 스레드의 특징

💡 스레드의 예시

웹 브라우저를 생각해보면, 하나의 탭에서 동영상을 재생하면서 동시에 다른 탭에서 웹 페이지를 로딩할 수 있습니다. 이 두 작업은 각각 별도의 스레드에서 처리됩니다.


🔄 동시성(Concurrency)이란?

동시성은 여러 작업을 동시에 처리하는 개념으로, 시스템에서 여러 작업이 동시에 진행되는 것처럼 보이도록 하는 것을 의미합니다.

동시성은 멀티스레딩이나 비동기 프로그래밍을 통해 달성될 수 있으며, 여러 작업이 순차적으로 실행되는 것이 아니라 작업들이 번갈아 가며 실행됩니다.

동시성 vs 병렬성

동시성은 하나의 코어에서 여러 작업을 처리할 수 있도록 하는 것이고, 병렬성은 여러 코어에서 동시에 작업을 수행하는 방식이야.

💡 동시성의 예시

파일 다운로드, 데이터베이스 쿼리 처리, 사용자 인터페이스(UI) 업데이트 등 여러 작업이 동시에 발생할 때, 동시성을 활용하면 이러한 작업들이 대기하지 않고 효율적으로 실행될 수 있습니다.


🛠 스레드와 동시성 관리 방법