Thread(스레드) 개념 이해하기

Thread(스레드) 개념 이해하기

스레드Thread는 프로그램의 실행 흐름을 나타내는 작은 단위입니다. 각 스레드는 독립적으로 실행될 수 있으며, 여러 스레드가 동시에 진행하여 실행될 있습니다. 스레드는 프로세스 내에서 실행되는 여러 작업의 단위로, 프로세스 내의 자원을 공유하면서 실행됩니다. 자바에서 스레드는 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현하여 생성할 있습니다.


imgCaption0
멀티 프로세스

멀티 프로세스

멀티 프로세스 일 응용 프로그램에서 여러 개의 프로세스로 분리하여 실행하는 것을 이론과목 여러 개의 프로세스가 동시에 진행하여 실행되므로, 일 프로세스가 죽어도 프로그램이 죽지않아 프로그램 전체의 안정성이 높아짐 보통 일 응용 프로그램 실행에 관하여 일 프로세스 메모리가 생성됩니다. 처음 생성 된 프로세스는 여러 노동을 수행하기 위해 운영체제에 다른 프로세스를 실행하라고 요청할 있습니다. 그러면 메모리의 다른 부분이 새 프로세스에 할당됩니다.

이같은 경우애 처음 만드러진 프로세스가 부모 프로세스, 그것에 의해 만드러진 다른 프로세스들이 자식 프로세스가 됩니다.

임계 영역

임계 영역critical section 두 개 이상의 프로세스, 스레드가 공유 자원에 접근할 때 순서 등의 이유로 결과가 변경되는 코드 영역 이전의 A 코인 예시에서 임계 영역은 A 코인의 값 조회 A 코인 100개 추가하는 구간이 임계영역이라고 할 있습니다. 이 임계 영역을 해결하기 위한 방법은 크게 3가지가 존재합니다. 1. 뮤텍스 2. 세마포어 3. 모니터 이 세 가지 해결법의 공통점은 프로세스1or 스레드1가 임계 영역에 들어가게 되면 프로세스2or 스레드2가 들어오지 못하도록 lock을 거는것입니다.

동시성과 병렬성 ?

Sequantial 싱글코어에서 순차적으로 실행되는 모습 Concurrent 싱글 코어CPU에서 멀티 스레드를 동작시키는 방법 동시성 Parallel 멀티 코어CPU에서 멀티 스레드를 동작시키는 방식병렬성 동시성 현실 작업의 흐름은 한 가닥이지만 여러 노동을 번갈아가면서 조금씩 수행하기에 마치 동시에 진행하여 진행하는 것 처럼 보입니다.

스레드Threads의 비전

스레드Threads의 비전은 저커버그의 두 번째 스레드에서 볼 수 있듯이 대화를 위한 개방적이고 가까운 공공 공간을 만드는 것 임을 강조하였습니다 한 마디로 스레드와는 어떤 메신저든 호환이 가능하도록 하겠다는 것인데요. 이로써 예를 들면 코리아에서 자주 활용하는 메신저인 카카오톡이든 일본에서 자주 사용되는 라인이든 모두 스레드를 통해 대화를 할 수 있는 개방성을 이야기하는 것 같습니다

그리고 저커버그 자신과 자신의 어린이 사진같이 개인적인 사진을 올리면서 친근함을 강조하는 것으로 보로 판단됩니다 3) 폭발적인 가입자수의 스레드(Threads)공개한 지 하루 만에 약 3,500만 명의 가입자가 증가하였고 그 이후 현재는 가입자수가 1억 명이 돌파하였다고 하는데요 아직 유럽EU에서는 오픈이 되지 않았음에도 불구하고 이 정도 속도라면 트위터를 금방 따라잡을 것 같습니다.

교착상태의 해결방안

1. 자원을 할당할 때 애초에 교착상태의 원인이 성립되지 않도록 설계 2. 교착 상태 가능성이 없을 때만 자원 할당되며, 프로세스당 요청할 자원들의 최대치를 통해 자원 할당 가능 여부를 파악하는 은행원 알고리즘을 씀 3. 교착 상태가 발생하면 사이클이 있는지 조회해보고 이에 연관된 프로세스를 한 개씩 지움 4. 교착 상태는 매우 드물게 일어나기 때문에 이를 처리하는 비용이 더 크므로, 교착 상태가 발생시 사용자가 노동을 종료하게 함. 현대 운영체제가 채택한 방법. 예시 프로세스를 실행시키다.

자주 묻는 질문

멀티 프로세스

멀티 프로세스 일 응용 프로그램에서 여러 개의 프로세스로 분리하여 실행하는 것을 이론과목 여러 개의 프로세스가 동시에 진행하여 실행되므로, 일 프로세스가 죽어도 프로그램이 죽지않아 프로그램 전체의 안정성이 높아짐 보통 일 응용 프로그램 실행에 관하여 일 프로세스 메모리가 생성됩니다. 자세한 내용은 본문을 참고하세요.

임계 영역

임계 영역critical section 두 개 이상의 프로세스, 스레드가 공유 자원에 접근할 때 순서 등의 이유로 결과가 변경되는 코드 영역 이전의 A 코인 예시에서 임계 영역은 A 코인의 값 조회 A 코인 100개 추가하는 구간이 임계영역이라고 할 있습니다. 좀 더 자세한 사항은 본문을 참고해 주세요.

동시성과 병렬성 ?

Sequantial 싱글코어에서 순차적으로 실행되는 모습 Concurrent 싱글 코어CPU에서 멀티 스레드를 동작시키는 방법 동시성 Parallel 멀티 코어CPU에서 멀티 스레드를 동작시키는 방식병렬성 동시성 현실 작업의 흐름은 한 가닥이지만 여러 노동을 번갈아가면서 조금씩 수행하기에 마치 동시에 진행하여 진행하는 것 처럼 보입니다. 궁금한 내용은 본문을 참고하시기 바랍니다.