美文网首页
进程与线程

进程与线程

作者: VisionOfQuinn | 来源:发表于2019-11-18 19:05 被阅读0次

    工作中经常会听到工程师讨论进程和线程。例如,涉及一些复杂功能的技术实现方案时,工程师会说现在已经同时开了几个线程在处理。进程和线程究竟是什么?它们之间有什么关系呢?本节主要介绍进程和线程的概念。

    当我们点击手机屏幕上的一个App按钮(启动一个产品)时,系统会为这个产品的运行分配系统资源(例如CPU和存储空间),分配好资源后,产品会在这个资源区域运行应用程序。这里所说的运行应用程序就是进程,也可以理解为每一个正在运行的App都是一个进程。例如,我们在手机上使用微信或者微博,就有分别属于微信和微博的系统进程。一旦关闭应用程序或因为系统资源紧张而自动关闭在后台运行的应用程序,进程就会被终止,同时对应的进程所占用的系统资源也会被释放。

    相比于进程,线程是一个更小的执行单元,一个运行中的应用程序是一个进程,一个进程中可以存在多个线程,每一个子任务都可以理解为是运行中的一个线程。我们以微博为例,运行中的微博是一个系统进程,可以上传照片发布微博,也可以上传视频发布微博。用户上传照片的任务在一个独立的线程中运行,上传视频的任务也在一个独立的线程中运行,并且这两个任务可以同时运行互不影响,这种方式叫异步线程处理,即可以并行互不干扰完成各自的子任务。当然,还有一种线程处理方式叫同步线程,即子任务是按照一定的顺序完成的。

    产品之所以能同时完成很多功能,就是因为线程的存在,尤其是涉及需要网络请求的一些功能时,例如用户在微信中发布朋友圈后有可能立马去刷新朋友圈,这时可能刚刚发布的内容还没有上传成功,所以在技术实现时会用两个线程分别处理发布和获取新信息的子任务。这样做既能保证用户体验,也能保证系统资源被合理地分配和利用。

    相关文章

      网友评论

          本文标题:进程与线程

          本文链接:https://www.haomeiwen.com/subject/sggbictx.html