최근 수정 시각 : 2020-03-14 12:54:19

스레드

파일:Semi_protect1.png   로그인 후 편집 가능한 문서입니다.
1. thread2. 인터넷 게시판 글의 한 형식3. 컴퓨터 관련 용어
3.1. 스레드와 프로세스의 차이점
4. 모험왕 비트의 등장인물
4.1. 개요4.2. 작중 행적4.3. 사이가4.4. 기타

1. thread

어떠한 흐름의 단위.

2. 인터넷 게시판 글의 한 형식

국내에서는 거의 사용되지 않으나 해외권 인터넷 포럼에서는 널리 사용되는 표시 형식.

제로보드 등의 국내 인터넷 게시판은 보통 본문을 쓰면 거기에 댓글이 달리는 방식으로서, 일반적으로 본문은 길이나 이미지 첨부, 태그 사용 등에 제한이 덜하나 댓글은 그런 제한이 심하게 걸리는 방식이다. 반면 스레드 방식의 경우 댓글도 본문과 같은 방식으로 작성된다. 엄밀히 따지면 댓글이라기보다는 과거 PC 통신 등에서의 답글 시스템에 가까우며, 본문과 여러 개의 답글을 죽 이어서 한 화면에 표시해주는 것이다.[1] 길이가 긴 답글을 달아 가며 이야기를 할 경우에 더 유리한 방식으로, 이런 형태가 줄 지은 글처럼 보인다고 스레드(실)이라고 부른다. 댓글 방식에 비해 스레드의 답글은 화면을 많이 잡아먹으므로 보통 답글 백 개를 한꺼번에 보여주거나 하지는 않는다.

한국어로 번역해서는 글타래라고도 불리기도 한다. 해외 사이트에서는 대부분 이런 스레드 방식의 인터넷 게시판을 사용하나 일부 국내 유저들은 일본 2ch 등의 사이트에서 스레드를 스레(スレ)라고 줄여 부르는 것을 보고서는 네이버 블로그 포스트를 스레라고 지칭하기도 하는 등 그냥 아무 인터넷 글이나 뜻하는 줄 아는 경우도 종종 보인다.

보통 스레드 게시판에서의 글 목록 정렬은 플로트 방식을 사용하며, 댓글이 최근에 달린 글일수록 글 목록 처음에 노출되는 방식이다. 항목 참조.

나무위키 프로그램 상에서는 쓰레드라고 표시된다. (ex : 쓰레드 상태)

나무위키에서 토론을 생성하면 스레드 주소로 임의의 영단어 조합이 할당되는데 이는 2017년 7월부터 바뀐 토론 URL의 형식이다. 예를 들어 https://namu.wiki/thread/JuvenileHugeVictoriousMice 와 같은 형태로 나타나는데 예시의 의미를 해석해 보면, 십대 거대한 승리의 쥐(...),처럼 소소한 재미가 있다.

3. 컴퓨터 관련 용어

#!syntax cpp
#include <unistd.h>
#include <pthread.h>

void* func0000(void* args0);
void* func0001(void* args1);

int main(void){

    pthread_t tid[2];
    int args[2];
    int status;

    pthread_create(&tid[0], NULL, func0000, (void*)&args[0]);
    pthread_create(&tid[1], NULL, func0001, (void*)&args[1]);

    pthread_join(tid[0], (void**)&status);
    pthread_join(tid[1], (void**)&status);

    return 0;
}

▲ 두 개의 스레드를 만들고, 각각의 스레드가 서로 다른 함수를 실행하게 만드는 프로그램.

최신 운영체제의 필수요소 중 하나. 프로세스보다도 작은 실행 흐름의 최소 단위이다.

예전에는 프로그램을 실행하는 흐름이 오로지 프로세스뿐이었으나, 소프트웨어가 진보하면서 하나의 프로그램에서 복잡한 동시 작업을 요구하기 시작하였다. 이를 위해서는 하나의 프로그램이 여러개의 프로세스를 만들어야 했는데 프로세스 특성상 하나의 프로그램이 이러한 동시 작업을 수월하게 할 수가 없었다.[2]

그래서 프로세스보다 더 작은 실행 단위 개념이 만들어지게 되는데 이것이 스레드이다. 하나의 프로세스에서 여러개의 스레드가 메모리를 공유하여 작동할 수 있으며, 그래서 생성과 속도가 빠르고, 적은 메모리를 점유하며, 정보 교환이 쉽고 Context Switcing 부하가 적지만 그 대가로 자원 선점과 동기화 문제를 얻게 되었다. 대다수 OS의 스케줄러는 스레드를 최소 단위로 하여 작동한다.

CPU 사양 상에서 4코어 8스레드 등으로 언급되는 스레드는 위에서 언급한 것과 같으나 단위로서의 뉘앙스가 더 강하다. 4개의 코어로 최대 8개의 작업을 동시 처리할 수 있다든지. 일반적으로 하나의 코어는 한번에 하나씩의 작업만 처리할 수 있지만 SMT[3]를 통해 하나의 코어가 어느정도 다중 처리 능력을 가지게 할 수 있으며 이럴 경우 물리적 코어 개수와 처리 가능한 스레드의 숫자가 다르게 된다.

3.1. 스레드와 프로세스의 차이점

프로세스: 각각의 은행 지점
스레드: 은행 지점 하나에 속한 고객 창구 여러 개
프로세스는 서로 완벽히 독립적인 공간을 가진다. 각자가 각자의 스택과 데이터 영역을 가지고, 보호받는다. 프로세스는 시작할 때 운영체제에서 PCB[4]와 메모리 공간을 할당받고 초기화하는 과정이 필요하다. 다른 프로세스의 영역을 들여다볼 수 없기 때문에 프로세스끼리 통신하기 위해서 프로세스간 통신[5]을 활용하거나 공유 메모리를 생성해 데이터를 주고받는 등의 번거로운 과정을 거쳐야만 한다. 은행 지점을 하나 새로 세우려면 부동산을 계약하고 내부 인테리어 공사를 진행하며, 은행 지점끼리 연락하기 위해서는 사람이 직접 가거나 전화를 해야 하는 상황을 생각해보면 된다. 반면 한 프로세스가 비정상적으로 종료해도 다른 프로세스에는 영향이 거의 없다.[6] 은행 지점 하나가 화재 등으로 손상되어도 다른 지점에서 업무를 볼 수 있는 것과 비슷하다.

스레드는 스택은 따로따로이지만, 코드 영역과 데이터 영역은 하나를 공유한다. 데이터 영역에 속하는 변수[7]를 통해서 쉽고 빠르고 편하게 통신할 수 있다. 같은 은행 지점에서는 옆 창구에 말만 하면 바로 알아들을 수 있는 것과 비슷하다. 단, 스레드 하나가 잘못된 연산이나 버그 등으로 비정상 종료한다면 같은 프로세스에 소속된 다른 스레드들까지 모두 강제로 종료된다.

리눅스 커널 2.2까지는 프로세스로 스레드를 에뮬레이트했기 때문에 정상 상황이라면 훨씬 가볍게 작동해야 할 멀티스레드 프로그램이 도리어 더 무거워지는 기현상이 있었다. 커널 2.4 이후로는 이런 문제가 없다.

4. 모험왕 비트의 등장인물

スレッド / Slade

파일:attachment/Beet_the_Vandel_Buster_Slade.gif

4.1. 개요

모험왕 비트의 등장인물. 성우는 미우라 히로아키.

4.2. 작중 행적

비트가 수행을 위해 「안크루스 마을」을 떠난 동안 함께했던 버스터이며, 비트와는 라이벌 관계였다. 비트와 헤어진 뒤에는 따로 전사단 계약을 맺은 뒤 암살자로서 단독으로 행동하고 있었으며, 이후 우연히 비트 일행과 만나 함께 싸우게 되었다.

현실주의자이며, 이상주의자인 비트와는 의견이 잘 맞지 않아 많이 충돌하지만 속으로는 비트를 걱정하고 있다. 뛰어난 전투 실력을 갖고 있으며, 글레이브를 주무기로 사용하고 바람의 천격(天撃)에 뛰어난 재능을 보인다.

매우 과묵한 성격으로, 왜인지 키스오리라고 부린다.

4.3. 사이가

바람의 천격을 사용해 만든 사일런트 글레이브라는 사이가를 사용한다. 양쪽에 창날이 달린 구조로 되어 있으며, 두께를 극도로 압축시켜서 보이지 않을 정도로 앏게 만든 것이 특징. 강한 적에게 강력한 타격을 줄 수 있다.

4.4. 기타

여담으로 원작에서나 애니메이션 판에서나 주역치고는 등장횟수가 너무 적은 캐릭터이다.(...) 원작에서는 초반에 잠깐 등장했다가 이후 한동안 나오지 않았으며,[8] 애니메이션 판에서도 잠시 등장했다가 2기인 「모험왕 비트 엑세리온」에는 등장하지 않는다. 더군다나 본작이 장기간 휴재 중이라 간만에 활약하다가 나오지 못하고 있다


[1] 그래서 일본이나 이에 영향받은 한국 커뮤니티들에서는 이를 댓글과 구분해 '레스(レス)'라고 부른다. 참고로 이 레스라는 단어는 Response에서 따왔다는 속설이 자주 있지만 사실이 아니다. 서양포럼들이나 이에 영향 받은 한국 포럼들(개발자 커뮤니티나 초기 커뮤니티들)의 경우에는 포스트(post) 라고 한다.[2] 프로세스는 서로의 메모리가 별도로 관리되므로 생성시에 필요한 정보를 죄다 복사해줘야 하다보니 생성 및 제거가 느리고 프로세스간 정보 교환이 어려운데다 상당량의 메모리를 중복해서 지녀야 한다. 또한 숫자가 늘어날수록 Context Switching 부담이 상당해진다.[3] 인텔의 하이퍼 스레딩이 이것의 일종.[4] Process Control Block[5] IPC: Inter Process Communication[6] 아예 없지는 않다. 서로 공유하는 파일을 깨먹는다거나 하면...[7] 보통 일반적으로 글로벌 위치에 놓은 변수를 사용하나, 힙도 가능[8] 이것 때문에 한 때 산조 리쿠는 스레드가 언제 다시 나오냐는 독자들의 질문 세계를 받았다고 한다.