java - 为什么只能用单核cpu的软件并不是将一个cpu线程独占,而是每个线程平均占用?
怪我咯
怪我咯 2017-04-18 09:52:36
0
3
896

比如说,我cpu有四个线程,那么运行一个只能利用单线程的软件为什么不是这个进程把第一个核心的所有资源占用,而是每个线程占用百分之25?

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(3)
黄舟

원하는 것을 달성할 수 있습니다. 다양한 운영 체제에서 호출할 수 있는 다양한 API가 있습니다. Linux에서는 sched_setaffinity가 호출되며, 이는 특정 스레드를 특정 스레드에서 실행하는 데 사용할 수 있습니다. CPU 코어에서 실행됩니다. 물론 당신이 말한 것은 스레드가 CPU 실행을 완전히 점유한다는 것입니다. 이것은 사용자 모드에서는 실현될 수 없습니다. 현재 운영 체제에서는 프로그램을 실행할 수 있지만 적극적으로 예약해야 합니다. 그렇지 않으면 전체 기계가 정지된 애니메이션으로 나타나고 기계가 응답하지 않지만 실제로는 무한 루프입니다.

小葫芦

현대 운영 체제는 선점형 멀티스레딩 메커니즘을 사용하여 CPU 제어를 획득할 때 타임 슬라이스를 획득하고, 타임 슬라이스가 끝나면 제어가 다른 스레드로 넘겨집니다.

Peter_Zhu

가정용 PC는 시간 분할 순환을 사용해 자원을 균등하게 할당하는 시분할 시스템입니다. 단일 스레드가 전체 CPU 코어를 독점하고 스레드가 끝없이 루프를 일으키면 어떻게 해야 합니까

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿