关于用户级线程阻塞时对等线程同步阻塞的技术疑问
关于用户级线程阻塞问题的疑惑
最近我在学习进程与线程的差异时,发现大量在线资源都提及一个缺乏详细解释的差异点:进程阻塞时,其余进程可继续执行;而**用户级线程(user-level thread)**阻塞时,其所有对等线程(peer threads)也会随之阻塞。
这令我难以理解:若调度器无法在阻塞线程与就绪/可运行线程间切换,并发的意义何在?
相关解释称,由于操作系统无法区分同一父进程下的不同线程,会一次性将所有线程阻塞,但我对此难以信服——现代操作系统均具备线程控制块(thread control blocks, TCB)及线程ID(thread ID),即便该线程ID仅在父进程内存空间内有效。
例如,正如《操作系统》(Galvin著)中的示例,我不希望处理输入的线程因拼写检查线程无法连接在线词典而被阻塞。
我怀疑要么是自己对该概念理解有误,要么是这些网站多年来照搬了过时的线程差异表述。此外,我在Galvin或William Stalling的《计算机组成与体系结构》(COA)等涉及线程的书籍中并未找到该表述。
我是在几个主流技术教程平台的进程与线程对比内容里看到这个说法的,包括GeeksforGeeks、Tutorialspoint、Guru99以及Javatpoint的相关文章。
内容的提问来源于stack exchange,提问作者AMAN KUMAR
相关产品推荐
相关产品推荐

