蒋豆芽的面试题专栏(15/操作系统之进程与线程)
-
协程是轻量级线程,轻量级表现在哪里?⭐⭐⭐⭐⭐
-
说说线程间通信的方式有哪些?⭐⭐⭐⭐⭐
-
说说线程同步方式有哪些?⭐⭐⭐⭐⭐
-
有了进程,为什么还要有线程?⭐⭐⭐⭐⭐
-
单核机器上写多线程程序,是否要考虑加锁,为什么?⭐⭐⭐⭐⭐
-
说说多线程和多进程的不同?⭐⭐⭐⭐⭐
-
简述互斥锁的机制,互斥锁与读写的区别?⭐⭐⭐⭐⭐
-
说说线程池的设计思路,线程池中线程的数量由什么确定?⭐⭐⭐
-
进程和线程相比,为什么慢?⭐⭐⭐⭐⭐
=========================================================================================================
- 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。
- 本专栏适合于互联网C++软件开发、嵌入式软件求职的学生或人士。
- 本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。这才是一份面试题总结的正确打开方式。这样才方便背诵
- 针对于非科班同学,建议学习本人专刊文章《蒋豆芽的秋招打怪之旅》,该专刊文章对每一个知识点进行了详细解析。
- 如专栏内容有错漏,欢迎在评论区指出或私聊我更改,一起学习,共同进步。
- 相信大家都有着高尚的灵魂,请尊重我的知识产权,未经允许严禁各类机构和个人转载、传阅本专栏的内容。
=========================================================================================================
-
协程是轻量级线程,轻量级表现在哪里?⭐⭐⭐⭐⭐
-
协程调用跟切换比线程效率高:协程执行效率极高。协程不需要多线程的锁机制,可以不加锁的访问全局变量,所以上下文的切换非常快。
-
协程占用内存少:执行协程只需要极少的栈内存(大概是4~5KB),而默认情况下,线程栈的大小为1MB。
-
切换开销更少:协程直接操作栈基本没有内核切换的开销,所以切换开销比线程少。
-
-
说说线程间通信的方式有哪些?⭐⭐⭐⭐⭐
线程间的通信方式包括互斥量、信号量、条件变量、读写锁:
- 互斥量:采用互斥对象机制,只有拥有互斥对象的线程才可以访问。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
- 信号量:计数器,允许多个线程同时访问同一个资源。
- 条件变量:通过条件变量通知操作的方式来保持多线程同步。
- 读写锁:读写锁与互斥量类似。但互斥量要么是锁住状态,要么就是不加锁状态。读写锁一次只允许一个线程写,但允许一次多个线程读,这样效率就比互斥锁要高。
-
说说线程同步方式有哪些?⭐⭐⭐⭐⭐
线程间的同步方式包括互斥锁、信号量、条件变量、读写锁:
- 互斥锁:采用互斥对象机制,只有拥有互斥对象的线程才可以访问。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
- 信号量:计数器,允许多个线程同时访问同一个资源。
- 条件变量:通过条件变量通知操作的方式来保持多线程同步。
- 读写锁:读写锁与互斥量类似。但互斥量要么是锁住状态,要么就是不加锁状态。读写锁一次只允许一个线程写,但允许一次多个线程读,这样效率就比互斥锁要高。
-
有了进程,为什么还要有线程?⭐⭐⭐⭐⭐
-
原因
进程在早期的多任务操作系统中
-
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++开发面经与嵌入式软件面经(蒋豆芽面试题总结) 文章被收录于专栏
- 本专栏适合于C/C++已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了C语言、C++、操作系统、计算机网络、嵌入式、算法与数据结构、数据库等一系列知识点,总结出了高频面试考点(附有答案)共计309道,事半功倍,为大家春秋招助力。 - 本专栏内容分为七章:共计309道高频面试题(附有答案)