小编use*_*700的帖子

当一个线程在C中阻塞时,为什么整个进程都不会阻塞

我正在学习操作系统课程,我们正在谈论线程.在Wikipedia上,它表示对于1:N内核线程:

如果其中一个线程需要执行I/O请求,则整个过程被阻止,并且无法利用线程优势

然而这让我思考.在C中,如果我在主线程上创建UI,如果我在使用pthread的新线程上执行I/O,则我的UI不会阻塞.这是否与维基百科所说的相矛盾,因为我仍然只有1个进程有2个线程,所以根据维基百科所说的,我的I/O线程不应该阻止我的用户界面吗?

编辑:如果Windows和OS X使用维基百科声称的1:1模型,那么为什么在OSX中当我执行top命令或在Windows中使用任务管理器时,我没有看到每个程序的线程都有单独的进程,为什么我仍然看到1进程下列出的多个线程?

c multithreading operating-system kernel process

3
推荐指数
1
解决办法
2045
查看次数

标签 统计

c ×1

kernel ×1

multithreading ×1

operating-system ×1

process ×1