스레드가 스레드라고하는 이유는 무엇입니까?


9

프로세스가 리소스 소유권 단위와 실행 가능한 명령이라는 것을 이해합니다. 스레드는 프로세스가 여러 실행과 리소스를 공유 할 수 있도록하며, 전체 프로세스와 관련된 모든 오버 헤드로 인해 OS가 스레드를 쉽게 예약 할 수 있습니다.

그러나 왜 이름 스레드 입니까? 문자열 또는 실행 인터리브에 대한 참조가 있습니까? 그럼에도 불구하고 이것은 내 의견으로는 직관적 인 용어가 아닙니다.

답변:


11

사전을 보셨습니까? 이라는 단어 는 봉제 과거의 의미가 있습니다.

3 : 무언가 연속적이거나 인출 된 것 : as

a : 일련의 추론이나 사고의 연속 ( 부품 을 아이디어 나 사건으로)

http://www.merriam-webster.com/dictionary/thread


흥미 롭군 "define thread"를 검색했지만 그 정의는 그중 하나가 아닙니다. 일반적인 사용법에서 프로그래밍에 이르기까지 다리를 건너기에 충분히 추상적이기 때문에 이것을 언급하게되어 기쁩니다.
Matt

9

여러 개의 나사산이 꼬이고 더 두껍고 강한 코드를 형성하는 방법을 본 적이 있습니까?

그것은 은유입니다. 모든 스레드는 독립적이지만 모든 스레드는 함께 최종 계산 출력으로 협업합니다. 또한, 텍스타일 실에서와 같이, 실 전체 코드의 구조를 손상시키지 않으면 서 실이 끊어 질 수있다.

여기에 이미지 설명을 입력하십시오


2
나는 항상 "스레드"를 묘사했지만 GrandmasterB는 단지 "트위스트, 두껍고 강한 코드"전체에 대해 확신하지 못했습니다. 대신 OS의 대부분의 스레드는 다음과 같습니다. miqel.com/bonnaroo_2008_music/yarn_string_trips.jpg (오른쪽의 사람은 메모리 컨트롤러가 될 것입니다) 네, 몇 가지 문자열은 일반적인 문제를 해결하기 위해 만들어졌지만 대부분은 그냥 거기에 있고 OS는 단지 그들이 (원하는 이유없이) 원하는 모든 것을 할 수있게합니다
DXM

7

tl; dr : "스레드"는 적절한 은유이기 때문에 스레드라고 불립니다.


스레드를 시작할 때 스레드가 실행될 수 있도록 운영 체제에 따라 처리 시간을 할당합니다. 스레드가 실행되는 동안 프로세서 (또는 코어)는 스레드에 모든주의를 기울입니다. 운영 체제가 코어를 다른 스레드로 전환하면 다른 스레드가 서비스되는 동안 스레드 실행이 중지됩니다.

그래서 사형 집행이 도처에 뛰어납니다. 그러나 이러한 점프에도 불구하고 기계 명령어 세트의 무결성은 그대로 유지됩니다. 우리는 울타리와 동시성 메커니즘을 구축하여 상태와 상호 작용하는 객체의 상태를 보호하기 때문입니다.

따라서 스레드는 특정 스레드에서 명령어를 실행하는 것이 아니라 생성 한 스레드 내에서 실행될 명령어를 나타냅니다. 즉, 각 스레드는 운영 체제가 수행하는 모든 컨텍스트 스위치에 대해 생각할 필요없이 개별 시스템 또는 에이전트 (우리는 경량 프로세스라고 함)로 생각할 수 있습니다. 동시에 실행.

다시 말해, OS가 무대 뒤에서하는 모든 점프에도 불구하고, 스레드 (경량 프로세스에서 실행중인 작업 시퀀스)라고하는 스레드는 여전히 동일한 작업 시퀀스로 생각할 수 있습니다. 필요한 동시성 보호를 취했다고 가정하고 스레드를 생성하지 않은 경우.


이 설명이 너무 무겁고 추상적이라고 생각되면 Reddit과 같은 포럼의 스레드를 생각해보십시오. 새로운 토론을 분기 할 수 있습니다. 각 토론은 자체 스레드입니다. 스레드간에 앞뒤로 이동할 수 있습니다. 그러나 각 스레드는 여전히 개별 대화로서 구조적 무결성을 유지합니다.


4

다양한 것들이 물을 흐릿하게하기 때문에 "나사"라는 용어의 근원을 풀기 (완전히 의도 된) 것은 어렵다.

포럼 또는 전자 메일 의미에서 스레드 사용은 거의 확실하게 "대화 스레드"라는 문구에서 유래합니다.이 대화는 날짜 에 따라 1593 년까지 거슬러 올라갑니다.

링크 에 따르면 , 스레드가 공유 메모리 프로세스의 구현에도 불구하고 실제로 70 년대 또는 80 년대 초까지 "스레드"라고 불리지 않았다는 것을 알고 있기 때문에 요구하는 스레드의 의미에 대해서는 명확하지 않은 것으로 보입니다. 오늘날 우리가 헤비급 프로세스로 생각하는 것을 포식합니다. 공유 메모리 멀티 프로세싱의 관련 형식을 "섬유"라고하는 것을 감안할 때 "스레드"라는 단어가 직물이나 다른 섬유 관련 유추를 연상한다고 생각합니다.


3

나는 그것이 '추론의 스레드'또는 '사고의 스레드'와 관련이 있다고 생각합니다.

프로세스와 달리 스레드는 메모리를 공유합니다. 따라서 자신의 마음 (메모리)을 가진 사람과 프로세스가 비슷하다면 그 마음 안에 한 줄의 생각으로 실을 비유 할 수 있습니다.


1

프로그래밍의 스레드와 비슷한 점을 읽었습니다 .CPU를 재봉 바늘로, 스레드를 실제 문자열로 생각하십시오. 이제 재봉 바늘이 여러 개 있지만 실이 하나 뿐인 경우. 당신은 생각하지 않습니다, 그것은 매우 비효율적입니다. 다른 CPU / 재봉 바늘은 스레드가 사용 가능할 때까지 대기합니다. 그러나 스레드가 여러 개인 경우 짧은 시간 안에 작업을 수행 할 수 있습니다.


1
무슨 일이야? 왜 -1입니까?
dexterous
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.