新闻  |   论坛  |   博客  |   在线研讨会
面试时,程序、进程、线程的区别这样回答必得满分
嵌入式Linux | 2023-01-10 17:21:36    阅读:165   发布文章

概念

程序:若干指令及变量的集合,指的是我们编辑的静态的代码。

进程:正在运行中的程序称之为进程。

线程:进程中的一个执行单元称之为线程

进程和程序的区别

进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的资源管理实体。可以从以下几个方面进行区别:

  • 进程是动态的,而程序是静态的。

  • 进程有一定的生命周期,而程序是指令的集合,是“死”的。

  • 进程和程序的关系就像戏剧和剧本之间的关系。

进程和线程的区别

线程就是轻量级进程,他们之间的关系如下:

  • 一个线程只能属于一个进程,而一个进程可以有多个线程。

  • 进程间资源相互独立,上下文切换效率低。

  • 资源直接分配给进程,同一进程的所有线程共享该进程的所有资源,所以线程上下文切换效率高。

总结

内核对进程和线程的调度是一样(都要分配时间片)。进程间资源相互独立,上下文切换效率低,但是稳定、安全。线程共享进程的所有资源,上下文切换效率高,但不安全(因为共享,所以不安全)。如果你需要稳定,进程是更好的选择。如果要速度,线程可能更好。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
专注于嵌入式Linux知识的分享、交流
推荐文章
最近访客