Published on
👁️

동시성 & 병렬성 (미완)

Authors
  • avatar
    Name
    River
    Twitter
36멀티 프로세스와 멀티 스레드에 대해 설명해주세요.쉬움
멀티 프로세스와 멀티 스레드는 둘 다 여러 흐름을 동시에 실행하여 시스템의 성능을 높이는 기술입니다. 멀티 프로세스는 여러 개의 독립적인 프로세스를 생성하여 작업을 처리하는 방식으로, 각 프로세스는 별도의 메모리 공간을 가집니다. 이 때문에 안정성이 높지만, 자원 소모가 크고 프로세스 간 통신(IPC)을 위한 추가적인 비용이 발생합니다. 반면, 멀티 스레드는 하나의 프로세스 내에서 여러 스레드가 메모리 자원(Heap, Data)을 공유하며 실행됩니다. 자원 공유로 인해 컨텍스트 스위칭 비용이 적고 응답성이 빠르지만, 여러 스레드가 동시에 공유 자원에 접근할 때 동기화 문제가 발생할 수 있어 이를 해결하기 위한 세심한 관리가 필요합니다.
상세 설명

ㅇd

37멀티 스레딩에 대해서 설명해 주세요.보통
멀티 스레딩은 하나의 프로세스가 여러 개의 스레드를 만들어, 각 스레드가 서로 다른 작업을 동시에 수행하도록 하는 프로그래밍 기법입니다. 스레드들은 프로세스의 메모리 영역인 힙(Heap)과 데이터(Data) 영역을 공유하지만, 각자 독립적인 스택(Stack) 메모리를 가집니다. 이로 인해 자원을 효율적으로 사용하고 컨텍스트 스위칭 비용이 적어 시스템 처리량을 높일 수 있습니다. 예를 들어, 웹 서버는 각 클라이언트의 요청을 별도의 스레드로 처리하여 빠른 응답성을 제공합니다. 하지만 공유 자원에 여러 스레드가 동시에 접근하면 경쟁 상태와 같은 동시성 문제가 발생할 수 있으므로, 이를 방지하기 위한 동기화 기술이 반드시 필요합니다.
상세 설명

38ThreadLocal에 대해 설명해 주세요.보통
ThreadLocal은 특정 변수를 각 스레드마다 고유한 저장 공간에 두어, 해당 스레드만 접근할 수 있도록 만드는 기술입니다. 멀티 스레드 환경에서 여러 스레드가 같은 변수에 접근할 때 발생할 수 있는 동시성 문제를, 동기화 락(Lock) 없이 해결하는 방법 중 하나입니다. 각 스레드는 자신만의 변수 복사본을 가지므로, 다른 스레드의 작업에 영향을 받거나 주지 않고 안전하게 상태를 관리할 수 있습니다. 주로 사용자 인증 정보, 데이터베이스 커넥션과 같이 스레드 단위로 독립적으로 유지되어야 하는 데이터를 저장할 때 유용하게 사용됩니다.
상세 설명