콘텐츠로 건너뛰기

Thread (2) 스레드 사용법 및 스레드 간 데이터 공유

Thread (2) 스레드 사용법 및 스레드 간 데이터 공유

스레드Threads란? 인스타그램이 사진과 영상을 통해 자신을 표현하는 곳이라면, 스레드는 메타가 자체 개발한 텍스트 기반 소셜미디어입니다. 한 게시물당 500자까지 지원되며, 외부 웹사이트로 연결되는 링크와 사진 혹은 최대 5분 길이의 동영상을 업로드할 수 있습니다. 즉, 텍스트 중심의 소통 공간이라고 생각하시면 됩니다. 스레드 앱은 다른 가입 절차 없이, 인스타그램 아이디로 간단하게 로그인할 수 있습니다. 인스타그램과 동일한 계정명을 사용하며, 프로필 사진, 소개 글은 따로 설정 가능합니다.

하지만, 인스타그램이 없습니다.면 다른 회원가입이 필요합니다. Play 스토어 혹은 애플 앱스토어에서 threads라고 검색 후 다운로드하거나, 인스타그램 검색란에 threads라고 검색하면 티켓이 뜨는데 그걸 클릭하시면 하단에 다운로드가 뜹니다.


스레드 실행 기본 개념
스레드 실행 기본 개념

스레드 실행 기본 개념

네임스페이스 System.Threading 다중 스레드 프로그래밍을 가능하게 하는 클래스와 인터페이스를 제공합니다. System.Threading.Thread 스레드를 만들고 제어하며, 해당 속성을 설정하고, 상황을 가져옵니다. 스레드 사용 방법 스레드 인스턴스를 생성합니다. 생성자 의 매개변수로 스레드로 동작 할 로직을 전달합니다. 인스턴스를 명시적으로 실행합니다. 스레드 동작 이해 프로그램이 실행되면, 프로세스는 최소 하나의 실행 흐름스레드을 가진다.

프로그램의 실행 시작점은 메인 함수입니다. 메인 함수도 내부에 소스 코드로 이루어진 로직을 가지고 있습니다.

스레드 스케쥴링
스레드 스케쥴링

스레드 스케쥴링

프로세스 스케쥴링과 마찬가지로, 스레드 스케줄링Thread Scheduling은 운영체제에서 다중 스레드를 관리하며, CPU를 사용할 수 있는 스레드를 선택하고, CPU를 할당하는 작업 말합니다.

스레드의 우선순위, 실행 시간, 입출력 요청 등의 정보를 고려하여 CPU를 사용할 수 있는 스레드를 선택하는, 스레드 스케줄링 알고리즘은 프로세스 스케줄링 알고리즘과 유사하게 동작합니다. 여러가지 알고리즘이 있으며, 대표적으로는 Round Robin, Priority-based scheduling, Multi-level Queue scheduling 등이 있습니다.

다만 스레드 스케줄링은 프로세스 스케줄링과 다르게, 하나의 프로세스 내에서 다수의 스레드가 동작하는 형태이기 때문에, 스레드 간의 상호작용과 동기화 사안을 고려해야 해야만 되는 차이점이 존재합니다.

PCB Process Control Block

PCB프로세스 제어 블록는 운영체제에서 프로세스를 관리하기 위해 해당 프로세스의 상태 정보를 담고 있는 자료구조를 말합니다. 프로세스를 컨텍스트 스위칭 할때 과거 프로세스의 상황을 어딘가에 저장해 둬야 다음에 같은 작업 이어서 할 수 있을 것이고, 새로 해야 할 작업의 상태 또한 이해해야 어디서부터 다시 작업 시작할지 결정할 수 있을 것입니다. 즉, PCB는 프로세스 스케줄링을 위해 프로세스에 관한 모든 정보 저장하는 임시 저장소인 것입니다.

그러므로 운영체제는 PCB에 담긴 프로세스 고유 정보를 통해 프로세스를 관리하며, 프로세스의 실행 상황을 파악하고, 우선순위를 조정하며, 스케줄링을 수행하고, 다른 프로세스와의 동기화를 제어합니다.

DBMS 도입하기

DBMS를 도입하여 사용자가 고객 앱에서 입력시 클라이언트앱은 DBMS와 요청,통신,응답하여 파일을 읽고 쓰게됩니다. DBMS 에서 데이터 처리에는 멀티스레딩 프로그래밍, 네트워크 프로그래밍, File IO 프로그래밍, 데이터 컬렉션 프로그래밍을 개발자가 따로 처리하지 않고 DBMS가 대신 처리해줍니다. DBMS와 통신 클라이언트와 DBMS간의 통신시 DBMS에서 제공해주는 DBMS Client API를 call하여 DBMS와 통신할 수 있어요.

DBMS Client API 의 역할은 DBMS전용 프로토콜에 따라 DBMS 와의 통신을 담당, DBMS에 상관없이 API 사용법을 통일시키기 위해 자바에서 정의하는 JDBC 규칙에 따라 만들어졌다.

스레드 전망

스레드는 유명 인사들의 참여와 함께 사랑을 받으며, 빌 게이츠와 오프라 윈프리 등 많은 유명인들이 스레드를 가입하고 사용 중에 있습니다. 하지만, 스레드는 아직 트위터를 완전히 대체할 수 있는지에 대한 의문도 있습니다. 그 이유로는 위의 설명드린 단점들1. DM기능이 없습니다.. 2, 해시태그 기능이 없습니다.. 3, pc용 웹 사이트가 없습니다.. 등 때문입니다. 그러므로 스레드가 향후 어떤 방향으로 발전하고 이용자들에게 어떤 가치를 제공할 수 있는지는 더 많은 개선과 발전이 필요합니다.고 생각합니다.

지금까지 스레드에 대한 가입 방법, 전망, 사용 방법, 장점, 단점 등을 알아봤습니다. 감사합니다.

자주 묻는 질문

스레드 실행 기본 개념

네임스페이스 System. 자세한 내용은 본문을 참고 해주시기 바랍니다.

스레드 스케쥴링

프로세스 스케쥴링과 마찬가지로, 스레드 스케줄링Thread Scheduling은 운영체제에서 다중 스레드를 관리하며, CPU를 사용할 수 있는 스레드를 선택하고, CPU를 할당하는 작업 말합니다. 좀 더 자세한 사항은 본문을 참고해 주세요.

PCB Process Control

PCB프로세스 제어 블록는 운영체제에서 프로세스를 관리하기 위해 해당 프로세스의 상태 정보를 담고 있는 자료구조를 말합니다. 자세한 내용은 본문을 참고 해주시기 바랍니다.