上一页 1 2 3 4 5 6 7 ··· 39 下一页
摘要: TCP可靠性传输的工作原理1、停止等待协议2、连续ARQ协议TCP可靠性传输的实现1、以字节为单位的滑动窗口2、超时重传时间的选择3、选择确定SACK 面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个... 阅读全文
posted @ 2019-03-24 16:19 strawqqhat 阅读(743) 评论(0) 推荐(0) 编辑
摘要: OSI七层模型物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。五层体系结构物理层、数据链路层、网络层、运输层、应用层。各层的作用1、物理层:比特 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。 他的主要作用是传输比... 阅读全文
posted @ 2019-03-24 14:55 strawqqhat 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: (B树)B-树 是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结... 阅读全文
posted @ 2019-03-23 23:06 strawqqhat 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 链接:https://www.nowcoder.com/discuss/111099 写生产者/消费者代码(使用notify和wait实现)wait():进入临界区后的线程在运行到一部分后,发现进行后面的任务所需的资源还没有准备充分,所以调用wait()方法让线程阻塞... 阅读全文
posted @ 2019-03-23 15:37 strawqqhat 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 三次握手过程理解第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号。第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即sy... 阅读全文
posted @ 2019-03-23 15:32 strawqqhat 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 硬中断1、硬中断是由硬件产生的。比如像磁盘、网卡、键盘、时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。2、处理中断的驱动是需要运行在CPU... 阅读全文
posted @ 2019-03-23 15:04 strawqqhat 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 设计:产品-product类;产品库:productRepository类生产者线程消费者线程 product.javapublic class Product{ private String name; private long productNo; publ... 阅读全文
posted @ 2019-03-23 09:43 strawqqhat 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:1、为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔... 阅读全文
posted @ 2019-03-22 20:23 strawqqhat 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadPoolExecutor的重要参数 corePoolSize:核心线程数 核心线程会一直存活,及时没有任务需要执行 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 设置allowCoreThreadTimeout=true... 阅读全文
posted @ 2019-03-22 20:12 strawqqhat 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的创建线程和销毁进程会大大的降低系统运行的效率。线程池正是为了解决多线程效率低的... 阅读全文
posted @ 2019-03-22 19:19 strawqqhat 阅读(828) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 39 下一页
#home h1{ font-size:45px; } body{ background-image: url("放你的背景图链接"); background-position: initial; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-origin: initial; background-clip: initial; height:100%; width:100%; } #home{ opacity:0.7; } .wall{ position: fixed; top: 0; left: 0; bottom: 0; right: 0; } div#midground{ background: url("https://i.postimg.cc/PP5GtGtM/midground.png"); z-index: -1; -webkit-animation: cc 200s linear infinite; -moz-animation: cc 200s linear infinite; -o-animation: cc 200s linear infinite; animation: cc 200s linear infinite; } div#foreground{ background: url("https://i.postimg.cc/z3jZZD1B/foreground.png"); z-index: -2; -webkit-animation: cc 253s linear infinite; -o-animation: cc 253s linear infinite; -moz-animation: cc 253s linear infinite; animation: cc 253s linear infinite; } div#top{ background: url("https://i.postimg.cc/PP5GtGtM/midground.png"); z-index: -4; -webkit-animation: da 200s linear infinite; -o-animation: da 200s linear infinite; animation: da 200s linear infinite; } @-webkit-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @-o-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @-moz-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @keyframes cc { 0%{ background-position: 0 0; } 100%{ background-position: 600% 0; } } @keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-webkit-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-moz-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-ms-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } }