13Java进阶——IO、线程】的更多相关文章

1 字节缓冲流 BufferInputStream 将创建一个内部的缓冲区数组,内部缓冲区数组将根据需要从包含的输入流中重新填充,一次可以读取多个字节 BufferOutputStream 该类实现缓冲输出流. 通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用 构造方法:传入字节流,可以指定缓冲区大小 bos.write("hello\r\n".getBytes(StandardCharsets.UTF_8)); BufferedOutp…
原文地址:http://blog.zhaojie.me/2009/07/thread-pool-2-dedicate-pool-and-io-pool.html 在上一篇文章中,我们简单讨论了线程池的作用,以及CLR线程池的一些特性.不过关于线程池的基本概念还没有结束,这次我们再来补充一些必要的信息,有助于我们在程序中选择合适的使用方式. 独立线程池 上次我们讨论到,在一个.NET应用程序中会有一个CLR线程池,可以使用ThreadPool类中的静态方法来使用这个线程池.我们只要使用QueueU…
Netty框架的 主要线程是IO线程.线程模型的好坏直接决定了系统的吞吐量.并发性和安全性. Netty的线程模型遵循了Reactor的基础线程模型.以下我们先一起看下该模型 Reactor线程模型 Reactor 单线程模型 单线程模型中全部的IO操作都在一个NIO线程上操作: 包括接受client的请求,读取client的消息和应答.因为使用的是异步非堵塞的IO,全部的IO操作不会堵塞.理论上一个线程就能够处理全部的IO操作. 单线程模型适用小容量的应用. 由于在高并发应用 可导致下面问题…
一.关于一个SQL的简单的工作过程 1.工作前提描述 1.启动MySQL,在内存中分配一个大空间innodb_buffer_pool(其中log_buffer) 2.多用户线程连接MySQL,从内存分配用户工作空间(其中排序空间) 3.磁盘上有数据库文件.ib_logfile.tmp目录.undo 2.SQL的简易流程 1.DQL操作 1.首先进行内存读 2.如果buffer pool中没有所需数据,就进行物理读 3.物理读数据读入buffer pool,再返回给用户工作空间 2.DML操作(例…
InnoDB有多个内存块,你可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构. 缓存磁盘上的数据,方便快速地读取,并且在对磁盘文件的数据进行修改之前在这里缓存. 重做日志(redo log)缓冲. .......... 后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据.此外,将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常情况下InnoDB能恢复到正常运行状态. 后台线程 由于Oracle是多进程的架构…
原文:http://budairenqin.iteye.com/blog/2215896 源码来自Netty5.x版本, 本系列文章不打算从架构的角度去讨论netty, 只想从源码细节展开, 又不想通篇的贴代码, 如果没有太大的必要, 我会尽量避免贴代码或是去掉不影响主流程逻辑的代码, 尽量多用语言描述. 这个过程中我会把我看到的netty对代码进行优化的一些细节提出来探讨, 大家共同学习, 更希望能抛砖引玉. java nio api细节这里不会讨论, 不过推荐一个非常好入门系列 http:/…
关键词:mysql复制故障处理 [1]手工处理的gtid_next(SQL线程报错) 例如:主键冲突,表.数据库不存在,row模式下的数据不存在等. [1.1]模拟故障:GTID模式下的重复创建用户 ]先在从库上创建一个用户,再去主库上创建一个用户-- 从202: create user 'test'@'%' identified by '123456';grant all privileges on *.* to 'test'@'%';flush privileges; -- 主202: cr…
Redis 到底是不是单线程的程序? 多 IO 线程的初始化 IO 线程运行函数 IOThreadMain 如何推迟客户端「读」操作? 如何推迟客户端「写」操作? 如何把待「读」客户端分配给 IO 线程执行? 如何把待「写」客户端分配给 IO 线程执行? 总结 参考链接 Redis 源码简洁剖析系列 Redis 到底是不是单线程的程序? Redis 只有在处理「客户端请求」时,是单线程的:整个 Redis server 不是单线程的,还有后台线程在辅助处理任务. Redis 选择单线程处理请求,…
前言 surging 对外沉寂了一段时间了,但是作者并没有闲着,而是针对于客户的需要添加了不少功能,也给我带来了不少外快收益, 就比如协议转化,consul 的watcher 机制,JAVA版本,skywalking 升级支持8.0,.升级NET 6.0 ,而客户自己扩展支持服务编排流程引擎,后期客户还需要扩展定制coap ,XMPP等协议.而今天写这篇文章的目的针对于修改基于netty 的异步非阻塞业务逻辑操作 问题描述 年前客户把JAVA版本进行了测试,产生了不少问题,客户也比较茫然,因为有…
一.IO流与系统 IO技术在JDK中算是极其复杂的模块,其复杂的一个关键原因就是IO操作和系统内核的关联性,另外网络编程,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux操作系统开始. Linux空间隔离 Linux使用是区分用户的,这个是基础常识,其底层也区分用户和内核两个模块: User space:用户空间 Kernel space:内核空间 常识用户空间的权限相对内核空间操作权限弱很多,这就涉及到用户与内核两个模块间的交互,此时部署在服务上的应用如果需要请求…