第一问:进程与线程有什么区别?进程之间通信有哪些方式?
有什么区别:
核心区别在于资源分配与执行流
1:进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位
2:进程内存严格分离,线程共享内存;前者稳定开销大,后者效率高易出现竞态(需要考虑同步问题)
3:进程进行操作的内存成本高
4:进程适用于高隔离性任务(浏览器多标签页),线程适合高并发计算(web服务器处理请求)
进程之间的通信方式?
常见有:
-
共享内存(最快,适合大数据交换),但需搭配信号量同步;
-
消息队列(异步解耦),比如日志系统;
-
套接字(跨网络通信),比如微服务调用。
除此之外还有管道,命名管道,信号量,信号等进程通信方式

第二问:什么是双端对列?相比于传统对列和栈,双端对列有哪些优势和应用场景?
双端队列(Deque)是一种允许在头部和尾部高效插入删除的数据结构。它兼具队列和栈的灵活性,比如用它可以轻松实现滑动窗口算法——窗口移动时,从头部移除过期数据,尾部加入新数据。
相比传统队列(只能尾部进、头部出)和栈(仅顶部操作),双端队列的优势在于操作的全面性和时间复杂度的高效性(两端操作均为O(1))。
典型应用包括:
-
算法:滑动窗口最大值问题中,用Deque维护当前窗口内的候选最大值;

最低0.47元/天 解锁文章
1482

被折叠的 条评论
为什么被折叠?



