1.线程独有:栈,寄存器,信号屏蔽字,errno...等信息,因此各个线程各自有各自的栈区,但是堆区共用。
2.用户态线程的切换在用户态实现,不需要内核支持。
3.每个线程在进程虚拟地址空间中会分配拥有相对独立的栈空间,而并不是共享栈空间,这样会导致运行时栈混乱。
4.任何一个线程都可以创建或撤销另一个线程。
5.进程是资源的分配单位,所以线程并不拥有系统资源,而是共享使用进程的资源,进程的资源由系统进行分配。
6.如果主线程调用pthread_exit,它会等待其他所有对等线程终止,然后再终止主线程和终止整个进程,返回值为retval。
7.与普通进程相比,LWP与其他进程共享大部分它的逻辑地址空间和系统资源;与线程相比,LWP有它自己的进程标识符,优先级,状态,以及栈和局部存储区,并和其他进程有着父子关系另外,线程既可由应用程序管理,又可由内核管理,而LWP只能由内核管理并像普通进程一样被调度。
8.pthread_create创建的线程实际上属于用户级线程。轻量级进程ID(tid)对不同的线程起标识作用,操作系统在进行调度时用的是tid。进程ID(pid)对不同的进程起标识作用。在只有一个线程的进程中:tid的值 = pid的值。同一进程下的多个线程之间属于同一个线程组,其线程组ID(tgid)= 主线程tid = 进程pid。
9.可重入函数:最重要的一个特性,在被多个线程调用时,不会使用任何共享数据。
10.线程安全函数与可重入函数的关系。
11.信号量既可以实现同步还可以实现互斥 。
条件变量需要搭配互斥锁使用,信号量不需要。
12.当系统处于安全状态时, 系统中一定无死锁进程
13.死锁四个必要条件
①互斥条件: 线程访问临界区是互斥的。一个资源每次只能被一个执行流使用。
②请求与保持条件: 一个执行流因申请资源而阻塞,而自己的申请到的资源未释放。
③不剥夺条件: 一个线程在未使用完资源时,不能强行剥夺。
④循环等待条件:若干个执行流都在等待对方的资源,而形成首尾相接的循环等待资源的关系。
14. 银行家算法是最有代表性的死锁避免而并非解除算法。
15.只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)。
16.OSI模型分为 7层,自下而上为,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
17.在数据链路层不但会增加以太网头部还会在尾部加上以太网尾部。
18.MAC地址用来识别数据链路层中相连的节点,长度为48位,6个字节。对于IPv4来说, IP地址是一个4字节, 32位的整数。
19.一台计算机可以绑定多个网卡,进而可以拥有多个MAC地址。
20.端口号是一个无符号16位的整数,用于表示主机上的网络通信socket,因为是16位,因此最大端口号是65535(从0开始)。
21.一个进程当中对于端口的绑定是和socket强相关,理论上该进程如果创建多个socket,可以给每一个socket都进行绑定一个端口。
22.
TCP协议,采用流方式,SOCK_STREAM, 可靠
UDP协议,采用数据报方式,SOCK_DGRAM, 不可靠
HTTP协议是应用层协议,在传输层基于TCP协议实现, (可靠是TCP提供的,TCP提供字节流传输)
IP协议是网络层协议,TCP和UDP协议在网络层都是基于IP协议的。(实现数据报传输)
23.
SMTP:简单邮件协议
FTP:文件传输协议
UDP:用户数据报协议
TELNET:Internet远程登录服务的标准协议
24.Cookie数据是在HTTP协议头部字段中传输。
25.Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制,而这个限制是实实在在存在的。
26.Content-Type:用于告诉客户实际返回的内容的内容类型或者说编码类型,比如 Content-Type: text/html; charset=utf-8 用于表示正文是 text/html文档类型,字符集为utf-8
Content-Language:用于表示用户希望采用的语言或语言组合,比如 Content-Language: de-DE 表示该文件为说德语的人提供,但是要注意者不代表文件内容就是德语的。
27.Cookie的Expires属性指定了cookie的生存期,默认情况下coolie是暂时存在的,他们存储的值只在浏览器会话期间存在,当用户退出浏览器后这些值也会丢失,如果想让cookie存在一段时间,就要为expires属性设置为未来的一个过期日期。现在已经被max-age属性所取代,max-age用秒来设置cookie的生存期。因此当没有设定过期时间时,则退出当前会话时cookie失效。
28.Session可以存放各种类别的数据,相比只能存储字符串的cookie,能给开发人员存储数据提供很大的便利。
29.SessionID可以存储每个用户Session的代号,是一个不重复的长整型数字。
30.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
未完待续。。。