嵌入式之经典知识点(二)

进程和线程有什么区别?

1.进程是资源分配的最小单位

2.线程是程序执行的最小单元,也是处理器调度的基本单元,但进程不是。两者均可并发进行。

3.进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段,数据段和堆栈段,这种操作十分昂贵。而线程是共享进程中的数据,使用相同的地址空间,因此CPU切换或者创建一个线程的代价远小于进程。

4.线程之间的通信更方便,同一进程下的线程共享全局变量,静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。多线程程序中,只要一个线程死掉,整个进程都会死掉,而一个进程死掉,并不会影响带另外一个进程,因为进程有自己的独立地址空间。

5.执行过程:每个独立的进程有一个程序运行的入口,顺序执行序列和程序入口。但是线程不能单独执行,必须依存在应用程序下。

6.线程运行开销小,但是不便于资源的管理和保护。线程适合在SMP机器(双CPU系统)下运行

  进程开销大,但是能够很好地对资源进行管理和保护。

同步和异步的区别? 

同步(Sync):所有操作都做完了,才返回给用户。

异步(Async):将用户请求放入消息队列中,并反馈给用户,比如系统迁移程序已经启动,但是数据库还没有完全写好,就先提示你可以闭浏览器了,之后程序再慢慢地写入数据库中,但是用户不像同步机制那卡死。

TCP和UDP的区别?

1.TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。

2.TCP提供可靠的服务,它通过校验和丢包时的重传控制,序号标识,滑动窗口,确认应答,次序乱掉的分包进行顺序控制实现可靠的传输。

3.UDP具有较好的实时性,工作效率比TCP高。

4.每一条TCP的连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信方式。

 

猜你喜欢

转载自blog.csdn.net/weixin_40288381/article/details/81082924
今日推荐