从linux源码看socket的阻塞和非阻塞 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自 ...
分类:
系统相关 时间:
2020-06-04 13:42:55
阅读次数:
58
2PC必须注意的问题咱们上文介绍了分布式事务的常见方案、类型划分、2PC的起源和流程。但是不幸的是2PC还是存在几个问题:1、全流程的同步阻塞:不管是第一阶段还是第二阶段,所有参与节点都是事务阻塞型。当参与者占有公共资源时,其他第三方访问公共资源可能不得不处于阻塞状态。2、TM单点故障:由于全流程依赖TM的协调,一旦TM发生故障。参与者会一直阻塞下去。尤其在第二阶段,TM发生故障,那么所有的参与者
分类:
其他好文 时间:
2020-06-04 12:03:37
阅读次数:
79
Java高并发教程:高并发IO的底层原理 IO读写的基础原理 程序进行IO读写依赖于操作系统底层的IO读写,主要为read、write两大系统调用。在不同的操作系统中,IO读写的系统调用的名称可能不完全一样,但是基本功能是一样的。 首先我们必须要明白的的是,read系统调用,并不是直接从物理设备把数 ...
分类:
编程语言 时间:
2020-06-04 00:58:33
阅读次数:
89
一:流量控制 什么是流量控制?流量控制的目的? 如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。流量控制根本目的是防止分组丢失,它是构成TCP可靠性的一方面。 如何实现流量控制? 由滑动窗口协议(连续ARQ协 ...
分类:
其他好文 时间:
2020-06-03 23:12:53
阅读次数:
69
如何检查线程是否死锁了? 产生死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程(线程)使用。(2) 请求与保持条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件 : 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件 : ...
分类:
其他好文 时间:
2020-06-03 20:39:43
阅读次数:
75
Netty java Mina Supersocket .net ACL 非阻塞异步 IO Netty 一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高,两张图让你了解BIO和NIO的区 M ...
分类:
其他好文 时间:
2020-06-03 15:15:39
阅读次数:
68
1.使用ps ef查出进程对应的pid。 2.使用kill -15 pid结束进程。 为什么不使用kill -9 pid,个人理解kill -15 pid更优雅,能在结束进程前执行spring容器清理工作。 二者区别如下: SIGNKILL(9) 是立即杀死进程. 该信号不能被阻塞, 处理和忽略。S ...
分类:
编程语言 时间:
2020-06-03 00:43:43
阅读次数:
207
1.简单的了解一下node 首先要了解Node.js是一个基于Chrome V8引擎的 JavaScript 运行环境; Node.js使用了一个简单事件驱动 非阻塞式 I/O 的模型,使其轻量又高效; Node.js 的包管理器npm(Node Package Manage),是全球最大的开源库生 ...
分类:
其他好文 时间:
2020-06-01 21:10:34
阅读次数:
146
总结一下这几个经典问题。 JavaScript为什么要放在HTML文档的底部? 首先说结论:不论是内联还是外链js都会阻塞后续dom的解析和渲染如果把JavaScript放在页面顶部,下载和解析JavaScript的时间里面,dom迟迟得不到解析和渲染,浏览器一直处于白屏,所以把JavaScript ...
分类:
编程语言 时间:
2020-06-01 13:47:37
阅读次数:
99
java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1、服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2、服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3、服:每 ...
分类:
编程语言 时间:
2020-06-01 13:45:51
阅读次数:
62