面试题1

来源:互联网 发布:md5加密Java应用 密钥 编辑:程序博客网 时间:2024/06/04 22:47

TCP有哪几种状态

客户端独有的:SYN_SENT,FIN_WAIT1,FIN_WAIT2,CLOSING,TIME_WAIT。服务器独有的:LISTEN,SYN_RCVD,CLOSE_WAIT,LAST_ACK 。共有的:CLOSED,ESTABLISHED 。

TIME_WAIT状态下重用会有什么问题

Linux实现了一个TIME_WAIT状态快速回收的机制,即无需等待两倍的MSL这么久的时间,而是等待一个Retrans时间即释放,也就是等待一个重传时间(一般超级短,以至于你都来不及能在netstat -ant中看到TIME_WAIT状态)随即释放。释放了之后,一个连接的tuple元素信息就都没有了,而此时,新建立的TCP却面临着危险,什么危险呢?即:    1.可能被之前迟到的FIN包给终止的危险;    2.被之前连接劫持的危险;

mysql的联合索引

联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

linux内存使用率用什么命令

top命令能显示系统内存目前常用的Linux下查看内容的专用工具是free命令。下面是对内存查看free命令输出内容的解释:1.total:总计物理内存的大小。2.used:已使用多大。3.free:可用有多少。4.Shared:多个进程共享的内存总额。5.Buffers/cached:磁盘缓存的大小。

top命令的rss字段是什么意思

RSS.resident set size 也就是每个进程用了具体的多少页的内存。由于linux系统采用的是虚拟内存,进程的代码,库,堆和栈使用的内存都会消耗内存,但是申请出来的内存,只要没真正touch过,是不算的,因为没有真正为之分配物理页面。

进程和线程的区别

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。1) 简而言之,一个程序至少有一个进程,一个进程至少有一个线程.2) 线程的划分尺度小于进程,使得多线程程序的并发性高。3) 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。4) 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。5) 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
0 0
原创粉丝点击