上一页 1 2 3 4 5 6 ··· 22 下一页
摘要: 2.2 NIO 由于上面BIO的弊端,以及为了解决C10K的问题,出现了NIO模型(NonBlockingIO)。java中的nio指new io,而linux中的nio指NonblockingIO。 NIO是同步非阻塞模型。 代码如下: import java.io.IOException; im 阅读全文
posted @ 2021-06-16 15:16 Zs夏至 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 二、 Socket编程 常见的IO模型主要有以下分类: 同步/异步 阻塞/非阻塞 这两个可以互相组合,如同步阻塞模型/同步非阻塞模型,但是没有异步阻塞模型。windows实现了异步模型,但是linux并没有实现,因此linux中的IO都是同步模型的。 2.1 BIO BIO--即`BlockingI 阅读全文
posted @ 2021-06-16 15:15 Zs夏至 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 1.4 pageCache pagecache是kernel中的一个折中方案。 可以没有pagecache,如果没有pagecache的话,那么如果应用想要访问文件的话,应用程序只需要调用kernel,然后kernel访问磁盘,拿到数据后直接返回就结束了,但是磁盘是比较慢的,为了提升效率所以加了pa 阅读全文
posted @ 2021-04-23 15:11 Zs夏至 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1.2 用户态和内核态 操作系统在运行过程中,cpu有两种状态,用户态和内核态。 用户态:运行所有的用户程序。 内核态:操作系统运行在内核态。内核态主要负责系统调度以及与硬件的交互。 用户态和内核态的区别 内核态与用户态是操作系统的两种运行级别,当程序运行在3级特权上时,就可以称之为运行在用户态。因 阅读全文
posted @ 2021-04-21 19:51 Zs夏至 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一、IO前置知识--Linux系统 根据冯诺依曼计算机结构,计算机的组成为:运算器、控制器、存储器、输入输出设备。 在现代计算机中,运算器和控制器集成为了cpu,存储器按照功能可以拆分为内存和磁盘。而输入输出设备也就是键盘、显示器等,统称为IO。 而Linux系统其实也是一个普通的程序,它运行在内存 阅读全文
posted @ 2021-04-19 14:22 Zs夏至 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Mybatis源码解析 mybatis的使用主要有一下步骤: 创建SqlSessionFactory工厂对象 // 加载mybatis配置文件 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); // 创建Sql 阅读全文
posted @ 2021-03-22 23:38 Zs夏至 阅读(43) 评论(1) 推荐(1) 编辑
摘要: Spring Bean的生命周期 1. bean元信息定义阶段 spring要创建bean首先需要定义bean的配置信息,这些信息我们称为bean的元信息。 什么是元信息? 元信息: 用来描述数据的数据 bean元信息定义有四种方式: API方式 XML方式 注解方式 properties方式 创建 阅读全文
posted @ 2021-02-04 10:22 Zs夏至 阅读(145) 评论(1) 推荐(1) 编辑
摘要: 多线程与高并发 一、了解多线程 什么是进程? 我们打开电脑上的qq时,点击qq.exe,电脑就会运行一个qq的程序,这个程序就叫做进程。 什么是线程? 当qq运行后, 我们可能会使用qq来打开多个聊天窗口进行聊天,那么每一个聊天窗口就算是一个线程。所以说,进程可以包括很多的线程。 线程和进程的区别? 阅读全文
posted @ 2021-01-23 21:03 Zs夏至 阅读(1218) 评论(3) 推荐(1) 编辑
摘要: 九、 Disruptor 数据的内存结构只有数组和链表,线程安全的非阻塞队列,链表实现有ConcurrentLinkedQueue,但是却没有数组的实现,因为数组的扩张需要创建新的数组并复制元素,效率非常低。 Disruptor是使用数组实现的,内部使用的RingBuffer。特性有:高并发,无锁, 阅读全文
posted @ 2021-01-23 21:02 Zs夏至 阅读(437) 评论(2) 推荐(1) 编辑
摘要: 八、线程池 ThreadPoolExecutor 在之前的demo中,都是使用new Thread()手动创建线程池。但是在工作中使用的话,阿里巴巴编码规约明确说明,线程必须交给线程池来管理。避免资源耗尽的风险。 传统的手动new的方式创建的线程,如果线程非常多的话,就会非常杂乱,无法管理。线程之间 阅读全文
posted @ 2021-01-22 11:51 Zs夏至 阅读(102) 评论(1) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 22 下一页