采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
单核在某一个时间点只能执行一个线程。假设现在执行到了自旋锁这个位置:要对某个变量执行操作,首先去检测这个变量有没有加锁,检测的结果肯定是没有加锁的(因为cpu正在执行当前自旋锁,不可能执行其它程序),就可以顺利成章的执行自旋锁里面的东西了啊? 老师我的理解有问题么?
有些偏差。因为自旋锁会一直执行(循环),从而占用CPU时间,因为只有一个核,这就导致别的程序不能使用CPU了。
如果是单核的CPU,那是不是除了这个自旋锁的程序在执行,计算机其他所有的软件都应该不能执行了?
是的,他会占用特别多的CPU资源,你可以理解为是一个死循环。不过操作系统还是可以把它切换出去,让给其他线程执行的。只不过只要自旋锁线程在执行了,就占用大量CPU资源,对别的线程不公平。
那如果这个单核支持多线程,是不是还是可以用的?
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
3.4k 17
1.7k 14
1.2k 13
1.3k 11