HashMap与HashTable、ConcurrentHashMap
HashMap:线程不安全 在多线程情形下会导致死循环
HashTable:线程安全但是效率低下synchronized保证线程安全弊端 进入等待或轮训场景既不能put也不能get。
ConcurrentHashMap:分段锁 锁分段技术,首先将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。
vector,list
ArrayList :线程不安全,内部是通过数组实现的,它允许对元素进行快速随机访问
LinkedList : 链表形式,方便插入,不方便查询
vector:线程安全 效率低.
进程线程差异:
进程中包括有多个线程,进程与进程之间是相对比较独立的。
TCP三次握手:客户端给服务端发送syn包(syn=x),更改状态为SYN_SEND状态;服务端返回SYN(ack=x+1)给客户端将状态改为SYN_RECV;客户端再次发送服务端ACK(ack=y+1),更改状态为ESTABLISHED完成三次握手。
四次挥手
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。