线程与进程的理解

你能描述一下渐进增强和优雅降级之间的不同吗

优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的hack实践了优雅降级,为那些无法支持功能的浏览器增加候选方案,使得在旧式浏览器上以某种形式降级体验却不至于完全失效.

渐进增强:从被所有浏览器支持的基本功能开始,逐步的添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用.

线程与进程的理解

1.首先要知道的第一个小问题:

进程是什么?
进程指的是在系统中运行的一个应用程序,程序一旦运行就是进程,是资源分配的最小单位

线程是什么?
线程是进程的一个执行单位,是程序执行的最小单位.

2.第二个问题:进程与线程的区别在哪里

区别一:进程拥有独立的堆栈空间和数据段,所以每当启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段,堆栈段和数据段,这对于多进程来说十分奢侈,系统开销很大,而线程不一样,它不拥有资源,没有独立地址空间,但是线程有私有的栈,程序计数器,本地方法区。(这些是放在进程的地址空间上,只有某个特点的线程可以去访问,其他线程访问不到。但若是用c++或c语言,产生数组越界问题,就可以访问到其他线程的栈了,导致其他线程的异常),线程比进程更节俭,开销比较小,切换速度快,但是进程的安全性较高,因为有独立的地址空间,一个进程崩溃后,不会对其他进程产生影响,而线程死掉就等于整个进程死掉

区别二:在通信机制上,因为进程互不干扰,相互独立,所以通讯机制复杂,例如管道,消息队列。而线程由于共享数据所以通讯机制很方便

区别三:同一个进程,所有线程共享该进程的所有资源.

区别四:线程必定也只能属于一个进程,而进程可以拥有多个线程而且至少拥有一个线程;

3.第三个问题:进程与线程的选择问题

若需频繁创建销毁则优先使用线程.
若需频繁切换则优先使用线程.
并行操作时使用线程
需要更稳定安全时,使用进程

    原文作者:少年版
    原文地址: https://segmentfault.com/a/1190000017999848
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞