멀티스레드란

    스레드 안전(Thread-Safety)란?

    멀티 스레드 프로그래밍 멀티스레드 프로그래밍은 하나의 프로세스에서 여러 개의 스레드를 만들어 자원의 생성과 관리의 중복을 최소화하는 것이다. 장점 멀티 프로세스에 비해 메모리 자원소모가 줄어든다. Heap 영역을 통해서 스레드 간의 통신이 가능하기 때문에 프로세스 간의 통신이 간단해진다. 스레드의 컨텍스트 스위칭은 프로세스의 컨텍스트 스위칭보다 훨씬 빠르다. 단점 힙 영역에 있는 자원을 사용할 때 동기화를 해야한다. 동기화를 위해서 락을 과도하게 사용하면 성능 저하가 발생할 수도 있다. 하나의 스레드가 비정상적으로 동작하면 다른 스레드도 영향을 받아 종료하게 될 수도 있다. 스레드 안전(Thread-Safety) 스레드 안전(Thread-Satety)란 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 ..

    프로세스와 스레드의 차이

    프로세스와 스레드의 차이 1. 프로그램(Program)이란 ? 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태이며 어떠한 작업을 위해 실행할 수 있는 파일을 뜻한다. 2. 프로세스(Process)란? 프로세스란 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램으로 메모리에 올라가서 실행되고 있는 프로그램의 인스턴스를 말한다. 운영체제로부터 시스템의 자원을 할당받은 작업의 단위이며, 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있는다. 각 프로세스는 별도의 주소 공간에서 실행되고 있으며 각 프로세스끼리는 자원의 공유를 하지 않는다. 또한 하나의 프로세스가 다른 프로세스이 자원에 접근하려면 프로세스간의 통신이 필요하면 메일 슬롯, 파이프, 소켓, 시그널, 공..