暂无个人介绍
上面只是提到了对于Thread执行任务的一种动态实现方法,肯定还有其他的。 那么动态实现有什么好处呢? 当我们有很多个任务的时候,我们如果一直使用new,再让gc的话,那么对于系统资源的消耗无疑是巨大的。 那么这个时候,如果我们固定一下,专门拿几个线程来处理并发任务呢?但是当并发任务很多又该怎么办? 这个时候就引入了池化思想 —— Pool 什么是池? 在学JDBC的时候我们知道了连接池,在学Spring的时候,我们又接触到了对象池。 其实按理来说线程池应该是大家在初学JavaSE的时候应该就遇到的,这里我们再来讲一下。 线程池,就是用一个容器来管理线程,这个容器叫做池(Poo
>之前就说了要来西索Redis,现在来辣! >本文的部分内容参考自《小林Coding》,部分地方根据源代码进行剖析。 >Redis源码地址:https://github.com/redis/redis.git
>之前就说了要来西索Redis,现在来辣! >本文的部分内容参考自《小林Coding》,部分地方根据源代码进行剖析。 >Redis源码地址:https://github.com/redis/redis.git >阅读本文之前建议先阅读我的上一篇文章:[神奇,Redis存储原理竟然是这样! – Karos (wzl.fyi)](https://www.wzl.fyi/2023/07/20/986/)
Redis是一个Key-Value模式的非关系型数据库,那么Key和Value的保存模式我们在这里说一说。 其实kv给大家的第一影响是啥?数组?哈希? 没错就是哈希,redis其实是用哈希表保存的键值对,键为str,值为数据类型,哈希表中的每一对元素是哈希桶
本文的数据类型只讲底层结构和部分机制,不讲具体的使用,使用的话自行bing,但是会提一些应用场景
其实这里收获最大的,应该是自旋锁,虽然说在最后使用了发布订阅来完成异步唤醒,但还是有一些缺点,比如这个锁是否公平,如果说,这里要让你实现公平锁,读者你又打算如何解决?想到这里,我又想到了Reactor模型,其实我们可以做一个BossGroup来存放一下阻塞线程ID,其实就是一个阻塞队列再用一个WorkerGroup来对每个ThreadID进行处理,当然这里提供的是一个思路,如果要完成的话,相当于是写一个小型中间件,也挺有意思,后面打算试一试,hhh。
从这篇文章开始,将对InnoDB的行格式和页结构进行介绍,这里主要介绍一下InnoDB的行格式,但是在故事的开始,都来提一下吧 InnoDB将数据划分为若干页,以页作为磁盘与内存交互的基本单位,一般页的大小为16KB。这样的话,一次性至少读取1页数据到内存中或者将1页......
好久没有深入地写文章了,这次来发一篇,通过mysql事物 | Joseph's Blog (gitee.io)和其他一些博客有感进行一些补充,InnoDB详解在下期发布 加锁机制 乐观锁和悲观锁 之前在JVM中其实也讲到,JVM在对象初始化的过程中其实也是使用的乐观锁
什么是操作系统 管理计算机硬件和软件资源的系统软件 • 管理计算机系统的硬软件 • 分配调度资源的系统软件 操作系统的目标 方便性、有效性、可扩充性、开放性 提高系统资源的利用率,提高系统的吞吐量 基本功能 • 统一管理计算机资源 • 处理器资源 • IO设备资源 • 存储器资源 • 文件资源 • 实现计算机资源的抽象 • IO设备管理软件提供读写接口、文件管理软件提供操作文件接口 • 提供用户与计算机之间的接口 • GUI • 命令行事 • 系统调用形式
从ChatGPT聊天服务上深挖Http、WebScoket和SSE推送技术的区别
漏桶限流算法和令牌桶限流算法是两种常见的限流算法,它们的原理和实现方式有所不同。 漏桶限流算法 漏桶限流算法是一种固定容量的桶,水以恒定的速率流出,来限制请求的流量。当请求到来时,会先加入到漏桶中,漏桶以恒定的速率处理请求,处理不了的请求会被丢弃。 以下是漏桶限流算法的流程图: