2017-09-07 5 views
-1

나는 약간 혼란 스럽다. 멀티 스레딩은 병렬 처리를 포함하므로 여러 코어를 사용하여 다른 스레드를 실행할 수없는 이유는 무엇입니까? 이 링크에서이 문구를 발견했습니다. https://www.tutorialspoint.com/operating_system/os_multi_threading.htm "다중 스레드 응용 프로그램은 다중 처리를 이용할 수 없습니다." 사전에멀티 스레딩이 멀티 프로세싱을 이용할 수 없습니까? 그렇다면 왜?

감사합니다.

답변

1

해당 문장에서 다중 처리는 프로세서가 아니라 여러 프로세스에 대한 것입니다.

동일한 프로세스에 속하는 스레드는 분리되지 않습니다. 예를 들어 스레드가 충돌하면 전체 프로그램이 중단됩니다.

UPD : 죄송합니다. 기사를 다시 읽고 처음 답변이 잘못되었음을 알았습니다. 필자는 병렬 처리없이 동일한 실행 단위에서 실행되는 소프트웨어 "에뮬레이트"스레드를 고려한 것으로 보입니다. 실제 스레딩 라이브러리 구현은 거의 찾을 수 없습니다. 대부분의 스레딩 라이브러리는 커널 스레드에 의해 백업됩니다.

+0

동일한 프로세스의 여러 스레드를 여러 코어에서 실행할 수 있다고 말할 수 있습니까? –

+0

일반적으로 예, 할 수 있습니다 –

+0

스레드가 단일 코어에서만 실행될 수있는 Eunuchs 변종이 있습니다. 그러나, 그들은 점점 더 예외적 인 경우입니다. – user3344003

관련 문제