网络编程概念汇总

网络编程概念汇总

 

进程:进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元,即正在进行中的程序

线程:线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。

进程是资源分配的基本单位,线程是调度的基本单位。进程包含线程,线程共用进程的资源。

协程:协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快

进程与线程比较

线程是指进程内的一个执行单元,也是进程内的可调度实体。线程与进程的区别:
1) 地址空间:线程是进程内的一个执行单元,进程内至少有一个线程,它们共享进程的地址空间,而进程有自己独立的地址空间
2) 资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
3) 线程是处理器调度的基本单位,但进程不是
4) 二者均可并发执行

5)  每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制

协程与线程进行比较

1) 一个线程可以多个协程,一个进程也可以单独拥有多个协程,这样python中则能使用多核CPU。

2) 线程进程都是同步机制,而协程则是异步

3) 协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态

线程之间的关系 一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。

进程和程序的区别 

程序是放到磁盘的可执行文件,进程是指程序执行的实例;

进程是动态的,程序是静态的:程序是有序代码的集合。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制;

进程是暂时的,程序是长久的:进程是一个状态变化的过程,程序可长久保存;进程与程序组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息);

进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。

进程和线程的区别 

(1) 地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; 

(2) 资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源  

(3) 线程是处理器调度的基本单位,但进程不是.  

(4) 二者均可并发执行.

死锁:多个进程因竞争资源而形成一种僵局若无外力作用,这些进程都将永远不能再向前推进

同步:一组并发进程按一定的顺序执行的过程称为进程间的同步

互斥:指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止

UDP协议:

定义:User Datagram Protocol,用户数据报协议. 
主要作用:将网络数据压缩成数据包的形式。 
数据包格式:一个二进制数据的传输单位 

TCP协议:

定义:Transmission Control Protocol 传输控制协议面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接
主要作用:把数据流分割成适当长度的报文段之后进行传输 

TCP与UDP的区别:

  1. 基于连接与无连接; 
    2.对系统资源的要求(TCP较多,UDP少); 
    3.UDP程序结构较简单; 
    4.流模式与数据报模式 TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

猜你喜欢

转载自www.cnblogs.com/zhangweijie01/p/10423193.html