- 博客(126)
- 收藏
- 关注
原创 结构实战和漫谈
本文探讨了互联网架构的技术演进与分层选择策略。架构师选择技术可分为潮流派、保守派和跟风派,但最佳选择应基于业务发展阶段:产品类业务由技术创新推动,服务类业务则由业务发展驱动技术演进。互联网公司技术发展分为初创期、发展期、竞争期和成熟期四个阶段,对应的技术策略从快速响应需求逐步演变为架构调整和平台建设。技术架构可分为存储层(SQL/NoSQL/大小文件存储)、开发层(框架/Web服务器/容器)和服务层(配置中心/服务中心/消息队列),需根据业务规模和复杂度选择成熟的开源方案或自建平台。
2025-11-12 10:51:44
587
原创 可扩展架构模式
摘要:本文探讨了软件系统可扩展架构设计的基本思想和方法。核心观点指出软件系统的生命力在于持续扩展,而实现可扩展性的关键在于"拆分",包括面向流程、服务和功能三种拆分方式。文章对比了传统可扩展架构模式(分层架构和SOA)的优劣,并详细分析了微服务架构的特点、陷阱及最佳实践。强调微服务成功的关键在于合理拆分和健全的基础设施支持,而非盲目追求服务粒度细化。通过支付系统、风控系统等实例,展示了不同拆分方法在实际业务中的应用场景和实施要点。
2025-10-30 10:43:37
767
原创 高可用架构模式
CAP理论是分布式系统设计的核心原则,指出在一致性(C)、可用性(A)和分区容错性(P)中只能同时满足两项。由于网络分区不可避免,实际设计需在CP或AP间选择。文章还介绍了FMEA故障分析方法,以及主备/主从复制等常见高可用存储架构,分析其优缺点及适用场景。高可用架构设计需根据不同业务需求和数据特性,权衡CAP要素并做好故障应对方案。
2025-09-24 19:40:34
1052
原创 高性能架构模式
本文介绍了高性能架构设计的几种关键模式:读写分离通过主从集群分散读写操作,但存在复制延迟和分配机制问题;分库分表包括垂直和水平拆分,水平分表带来路由、join、count等操作复杂度;缓存架构需解决穿透、雪崩和热点问题。此外还探讨了单服务器高性能的PPC和TPC模式,PPC通过进程处理连接适合稳定场景,TPC用线程处理更轻量级但复杂度高。文章结合实际案例分析了不同模式的适用场景和优化方案。
2025-09-24 19:34:34
1029
原创 架构设计初识和复杂度来源分析
本文总结了《从0开始学架构》的核心知识要点。首先通过微信架构、Linux架构等案例引出架构的基本概念,并区分了系统/子系统、模块/组件、框架/架构等关键术语。随后提出"4R架构模型"(Rank层级、Role角色、Relation关系、Rule规则)作为架构设计的核心方法论。文章还回顾了软件架构的历史背景,从结构化编程、面向对象到组件化的发展历程,指出架构设计是应对软件复杂度的关键手段。最后分析了架构设计的三大核心复杂度来源:高性能(涉及SMP/NUMA/MPP等技术选择)、高可用(独裁式
2025-05-29 14:19:27
841
原创 G1和ZGC垃圾回收器学习
随着JDK17的占有率不断升高和SpringBoot3最低支持JDk17,JDK17很大概率会成为大家后续升级的一个选择,而JDK17上最重要的垃圾回收器G1和ZGC,也就显得格外重要。大家提前了解或者学习一下肯定是有用的。
2024-03-20 08:45:40
1593
原创 深入理解synchronized
在写这篇文章的时候,有一个问题其实一直存在,写这样的文章有什么用?但是写完后,我有了一个给自己的答案。 程序员一生或许在技术上很难成为一座高山,但是站在高山上看看远处的风景也是挺好的。 从这些底层的逻辑中,最起码我得到两点可以运用在项目中的技术点。项目中编写带代码时,如果遇到启动不需要的数据,可以开启懒加载,第一次调用的时候再去执行对应的逻辑。项目中可以使用同一个字段的不同状态来表示不同的属性,达到节省空间的目的。 就这样吧,结束。
2024-03-03 10:44:08
1147
原创 MySQL的Binary Log和Redo Log学习
MySQL的Binary Log和Redo Log学习 上一篇博客介绍了MySQL的基础架构,这一篇就来讲一讲MySQL中比较重要的两个日志,物理日志Redo Log(后面都称为重做日志)和逻辑日志Binary Log(后面都称为二进制日志)。(其他日志也重要,但是面试官问的少。。。)重做日志介绍 重做日志是属于InnoDB引擎的日志,InnoDB还有一个比较重要的日志undo log,这个也是后面MVCC需要介绍的。前一篇博客中讲了InnoDB是引擎层,所以重做日志就属于引擎层,不是所有引擎都可
2022-04-17 16:53:16
1019
原创 MySQL架构初步了解
MySQL架构初步了解 最近一段时间一直没有更新博客,虽然一直在学习新东西,但是没有精力和时间(借口)将学习到的东西整理成博客。见到朋友圈一位大佬一直在不间断的更新博客,还是挺佩服的,只有自己尝试过后才知道坚持输出到底是一件多么花费毅力的事。后面还是慢慢来吧,慢慢把自己学习的一些东西整理一下。 本次算是MySQL的继续学习,因为后续的学习离不开MySQL架构,所以这篇博客算是一篇前置博客。介绍一下MySQL的架构和每个组件的作用。后续就学习MySQL中比较重要的两个日志。 MySQL的架构大致可
2022-04-10 16:41:15
3485
原创 MySQL的连接方式
MySQL的连接方式 今后会慢慢写一些关于MySQL的博客,补上自己这一部分的知识。今天这篇博客就先介绍一下MySQL连接的方式,主要还是因为连接MySQL时发现了一个参数。-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves
2022-01-13 20:16:16
5453
原创 浮生游记-2021总结篇
浮生游记-2021总结篇 终于,游记还是写完了。 三月份旅行的游记结果到了十二月份才写完,也是很感慨。中间有几次中断,并且游记的总体阅读量也不是很多。但是我还是坚持下来了,坚持的原因其实很简单,就是想证明自己确实可以做成一件事。后续如果还有这样的机会,也可以暗示自己,之前能做到的事,现在也可以做到。说到底,还是想给这次旅行一个完美的结束,所以这篇简短的博客就是给出旅行中的一些建议和记录本次旅行中的一些花费(因为我本人花钱有记录的习惯,所以才有材料写这篇博客)。不多说了,直接开始吧。花费记录 这
2021-12-26 20:51:15
469
原创 浮生游记-武汉篇
浮生游记-武汉篇 我是在喝着酒,吃着花生写这篇博客的,我认为写这样的一篇博客应该配着酒。 旅行的最后一站是武汉,在之前很长一段时间我对于武汉的印象除了武汉热干面,剩下就是它离我们信阳很近。这次旅行之所以有这个目的地是因为我有个朋友在武汉。也可以这样说,我朋友在哪里,这次旅行的最后一站就在哪里。 到武汉的第一感觉就是普通,从下了飞机,一直到地铁上,感觉和郑州没有太大的差别。路上的行人聊着家长里短,白领都是行色匆匆,学生则是聚在一起商量待会去哪里玩。有那么一瞬间,我感觉我回到了郑州。但是路边随处可
2021-12-25 19:51:10
698
原创 浮生游记-三亚篇
浮生游记-三亚篇 我是坐的飞机来到三亚的。因为大理直飞的航班太贵并且时间也不是很好,所以选择中转先到昆明,再飞往三亚。我最开始以为人会很少,但是没有想到去往三亚的飞机也是满员的。没想到人多就是我三亚从头到尾的体验。 坐飞机到三亚的时间是晚上,所以没有看到白天的大海,挺遗憾,就是在落地的时候感觉看到一点点的海。视野的左边是灯火通明,右边则是稀疏几个亮点。后来我才知道,灯火通明的才是海上,稀疏几个灯光的则是岸上。就算是晚上海上船也挺多。 三亚飞机场和我以前见过的也不太一样,三亚的飞机场和居民区挨着很
2021-12-12 16:51:39
847
原创 浮生游记-大理篇
浮生游记-大理篇 离开丽江是在一个阴雨天,当然,来到大理也是阴雨天。从丽江到大理坐的是火车。对,就是那个网红火车,初上车时没有感觉,只是感觉这个火车比较大,然后就是没有座位,都是卧铺。直到到站了,才反应过来坐上了网红火车,有点遗憾,没有在火车上刷一刷,逛逛酒吧和KTV。后来有朋友去丽江的时候做过这一趟火车,据说挺不错的。下面有一些图片: 到大理的第一感觉就是天很蓝,火车站距离酒店有些距离,所以坐的公交到的酒店。一路上风景我感觉很不错,有一些海边乡村的感觉,我老是将远处的洱海当成真实的海。。。同时
2021-12-05 23:22:00
775
1
原创 使用Hexo和GitHub搭建个人博客
使用Hexo和GitHub搭建个人博客 本篇博客认为读者已经有一些编程基础,很多开发使用的工具和一些简单的命令,这里不再赘述。并且需要注意,本篇博客使用的主机为centos7.6系统搭建,其他操作系统或者其他版本可能部分命令不能使用。前置条件 搭建之前先说一下前置条件。其实就是申请git仓库,因为GitHub能够将你账号下的一个特殊仓库里面的内容转换为可以显示的web页面,所以你需要创建指定名称的仓库,格式为:<username>.github.io,注意,user设置为你的GitHu
2021-11-01 00:25:01
211
原创 浮生游记-丽江篇
浮生游记-丽江篇 成都逛完之后,按照计划就来到了丽江。来到丽江是4月8号,正值云南边境疫情反复,所以云南的行程都有点忐忑。但是最终还是来了,没有什么其他原因,我也从来没有听过什么艳遇之都之类的话。笑。 丽江其实并不大,住的地方可以选在古城区附近,这一片民宿特别多,在美团或者其他APP上找个差不多的酒店就可以了。出来玩,酒店其实不用太犹豫,大多数的酒店说起来都不符合国家的要求,尤其是民宿,只要不使用生活用品就行,酒店,说到底就是个晚上睡觉的地。 到达丽江是晚上12点了,到酒店又折腾到2点,所以初到
2021-10-13 00:07:01
453
原创 Java中Stream了解和使用
Java中Stream了解和使用 还是工作中遇到的一些事情,之前因为基础不是很好或者工作中使用的东西比较局限。所以现在在慢慢补上自己之前的一些知识盲点,可能在大家看来都是比较浅显的东西,还是那句话,博客以记录为主。这一篇博客就是补充Stream知识点。普通代码中操作List和集合类 我们写代码通常会遇到操作集合类的需求,例如找出集合中符合条件的元素,或者需要对集合中某些元素做一些操作。我之前的写法代码如下:public static void ordinary(List<Integer&g
2021-10-02 21:54:42
415
原创 《如何阅读一本书》读后感
背景 最近阅读了一本书《如何阅读一本书》,感觉人还是要多读书,所以最开始我想读的书就是教我如何读书的书,后面读书时才能快速和高效。 这本书很经典,我这里也是做了一个思维导图,链接在这里:链接。也供大家参考一下:心得体会 下面就是自己读完后,自己的一些心得体会。主要是阅读中一些感悟。对于难读的书,第一遍可以细读,无论是否读懂,都要细读,了解各个语句的含义,没有任何歧义。然后再读一遍,这一遍可以略读,梳理文章读结构和观点。一定要梳理出适合自己的读书方式,记笔记的方式、读各种类型书籍的方式。
2021-09-14 23:27:50
746
1
原创 Maven学习
又是工作中遇到了一个Maven的问题,解决了好久都是迷迷糊糊的,这次记录下来防止自己再次忘记。Maven是什么 Maven 是一个意第绪语单词,意思是知识的积累,最初是为了简化 Jakarta Turbine 项目中的构建过程。每个项目都有自己的 Ant 构建文件,都略有不同。我们想要一种构建项目的标准方法、对项目组成的清晰定义、一种发布项目信息的简单方法以及一种在多个项目之间共享 JAR 的方法。 结果是现在可以用于构建和管理任何基于 Java 的项目的工具。我们希望我们已经创建了一些东西,
2021-09-02 22:52:16
2754
1
原创 选择排序学习
概念 前面学习了冒泡排序,其实我一直将冒泡和选择搞混淆,因为冒泡也是每次循环找到最大或者最小的元素,但是冒泡多了一步交换。选择排序就不同,每次循环找到最大值或者最小值,最后才将其放到队尾或者队首。 说这这里,选择排序的概念就很清楚了,有两个循环,外循环遍历所有的元素,内循环遍历找到最大值,内循环完成后,将当前循环的最大值移动到队尾。外循环完成后,排序也就完成了。示意图如下:代码 代码来说就比较简单了,甚至比冒泡排序还要简单。如下:public static void selectionSo
2021-08-29 02:12:33
159
原创 Dubbo简单Demo搭建
Dubbo简单Demo搭建 上一篇博客简单介绍了一下Dubbo的一些背景,这一篇博客就开始上手一个简单Demo,只有成功的跑起来,才有继续学下去的动力,一直看资料多乏味啊。搭建注册中心 Dubbo是使用注册中心来注册服务和发现服务的。上一篇博客里面也有一个Dubbo结构图。挺形象的。Dubbo支持很多种注册中心,Nacos、Zookeeper、Multicast、Redis、Simple。官方推荐Zookeeper注册中心,我们这里也是搭建一个Zookeeper集群。其他的注册中心大家可以去官网了
2021-08-24 23:37:25
618
2
原创 Dubbo背景了解
Dubbbo背景了解 最近有时间了,同时工作中用到了Dubbo,所以后面慢慢会写一些相关的博客。 作为一个技术,我认为最开始的学习要先了解其背景,知道这项技术为什么产生,我们项目中为什么使用这项技术,以及这项技术的优点在什么地方。其实这个在面试中也会经常问到。知道这些后,才能在项目技术选择中更加游刃有余。不多说了,直接开始吧。 这一部分知识其实来源于Dubbo的官网,大家也可以在官网上直接查看,我一直认为官方文档应该是第一手参考资料。 官网地址:dubbo官网网站应用演进 网站其实是
2021-08-23 23:21:31
242
原创 冒泡排序学习
概念 冒泡排序是非常基础的排序算法之一,也很容易理解。过程简单来说就是:每次比较相邻的两个元素,如果前一个元素大于后一个元素就交换这两个元素的位置(不一定大于,小于也可以)。一直重复这个操作,知道数组中所有的元素排序正确后,即所有的元素都不需要交换位置。 也可以看看动图去理解。动图这里放上一个链接,菜鸟教程的:菜鸟教程冒泡排序实现 实现起来也是比较简单的:代码如下:public static void bubbleSort1(int[] arr) { int length = arr
2021-08-17 23:54:00
166
原创 浮生游记-成都篇
浮生游记-成都篇 我真的是太爱成都这个城市了。 之前我给别人透露我的计划时,有人给我说成都没有重庆好玩。我当时也有点怀疑。幸亏我没有改变我原来的计划,仍然去了成都。成都这座城市我真的是太喜欢了。 成都这座城市很有烟火气,不像其他城市的偏科,成都这座城市无论年轻人,老人还是小孩都是很开心。有的城市满眼望去都是年轻人,有的城市又因为种种原因导致年轻人的流走。我感觉成都很好的平衡了这两种极端。城市里可以见到老年人,小孩,年轻人都跟安逸。这是我喜欢它的原因,很有烟火气的一座城市。用成都话来说就是:巴适的
2021-05-01 00:19:47
712
2
原创 浮生游记-拉萨篇
浮生游记-拉萨篇 坐在前往拉萨火车上的我心情仍然久久不能平息。 一方面是我终于开始了自己的朝圣之旅,另一方面就是担心自己能不能适应拉萨的高度,自己的高反会不会成为这次旅行最大的变数。但是正如藏民对于信仰的坚定一样,我也坚定的踏上了前往拉萨的火车(可能比喻不太恰当。。。) 我感觉高原反应应该是大家前往拉萨都会考虑的事情。我在西宁待了一段时间也是为了适应高原,就算这样在去往拉萨的过程中还是有一些不适。首先是走路感觉好像在飘,也有点摇摇晃晃,其次感觉有点头晕,很像感冒的状态。高原反应其实和心理有一定的
2021-04-10 16:38:20
2242
5
原创 浮生游记-西宁篇
浮生游记-西宁篇 出了西安后,按照计划就要前往西宁了。因为无论在哪里坐火车去拉萨都要经过西宁,所以西宁也就成为了必去的一站,正好看看青海湖。说起来有些惭愧,我是订票的时候才知道西宁是青海省的省会。由此可见西宁的存在感。 到达西宁已经是中午了,本来计划是当天下午直接赶往塔尔寺,不知道是不是高反的原因,我到酒店后感觉比较累,所以下午到计划基本作废了。这里要提醒一点,西宁的酒店是没有空调的,只有暖气,暖气是开到四月份中旬的,所以在西宁找酒店最好找一个带窗户的房间,要不然夜晚会很闷热。 休息到了下午五点
2021-04-05 16:54:59
1792
3
原创 浮生游记-西安篇
浮生游记-西安篇 西安作为一个人文气息浓郁的城市,是大多数人出行旅游的一个选择。这也是我将西安作为旅行开始的一个原因。 当时写下这个开头的我正在去往西安的火车上,火车上也遇到一个同样去西安游玩的男生,我们互相交换了旅游的攻略(大部分都是我在讲)。他的必去站大唐不夜城并不在我的行程里,我当时也以为后续不会在见到他,但是缘就是妙不可言,最后还是挺意外的又见到他一次,当然这都是后话了。感觉这次火车上的缘分亦如我的这次旅行,确实有些妙不可言。 因为火车晚点,当心情糟糕的我见到了西安火车站后心情越发难受。
2021-04-01 00:25:10
418
1
原创 浮生游记-开篇
浮生游记 最近突然空出来一大段时间,有点茫然不知所措。还是同事提醒了我,说我可以去出去玩玩散散心。然后就在短短的一天内决定了游玩的大致路线,直到现在坐在去往西安火车卧铺上的我还是有点难以相信,我就这么出发了?突然的计划、没有考虑的行程、完全小白的我还有充满未知的一个月。 但是我还是想记录下来。记得我在大学期间有过几次游玩的经历,中间我也很想将旅行中的见闻和感悟写下来。后来一直没有时间加上或多或少的忘记,所以最后也就不了了之,写了一半的文章我也没有发出去。这次的旅行我想改变一下,边走边记录。将自己的感
2021-03-26 18:17:43
328
1
原创 记最近一段时间的学习
记最近一段时间的学习 最近一段时间再学习红黑树,中间也停过一段时间,本以为是一个简单的事情,最后发现并没有想象中的简单。还是太年轻了啊。中间遇到了一些问题,这里也列举出来,分析一下原因,后面防止再犯。遇到的问题 如果看到我之前的博客,可以看出这一段时间再梳理红黑树的相关知识点,中间还穿插了其他的东西。其实不是我的本意,我以为一个星期就能啃完,但是中间的过程出乎我的意料,比我想象中的要麻烦和难缠。 两篇博客其实没有远没有达到我想象中的要求,感觉还是差点意思。原因也很简单,中间因为一些事情困惑了很
2021-03-24 16:29:17
104
原创 红黑树在HashMap中的应用(二)
红黑树在HashMap中的应用(二) 上一篇博客讲述了红黑树的历史来源,阐述了红黑树的五条性质,并且解释了五条性质的原因。下面就来实际操作一下,讲解一下红黑树对于节点的插入和删除。文章目录红黑树在HashMap中的应用(二)红黑树的插入和删除2-3-4树的插入、删除操作2-3-4树的节点插入2-3-4树的节点删除红黑树的插入、删除操作红黑树的插入红黑树的删除了解删除前需要了解的红黑树删除的情况红黑树的插入和删除 在之前不止一次的说过红黑树来源于2-3-4树,所以插入和删除也是,不了解2-3-4树
2021-03-23 21:27:33
316
原创 Java中的参数传递类型
Java中的参数传递类型 在阅读HashMap中的源码过程中,阅读到一些方法之间的调用涉及到参数传递,有些情况下感觉最后的结果和我想的不一样,所以特地了解了一下参数传递,在这里也记录一下,防止自己忘记。文章目录Java中的参数传递类型了解一些基础概念形式参数和实际参数形参和实参的举例值传递和引用传递值传递和引用传递的举例了解Java中的传递类型对于传递类型的解析举一些小例子了解一些基础概念 在学习参数传递之前需要先了解一些基础概念,这里也会给出实例代码。方便理解。形式参数和实际参数 参数传
2021-03-17 15:55:55
1332
原创 红黑树在HashMap中的应用(一)
红黑树在HashMap中的应用(一) 现在来填上一篇博客的坑,讲一讲红黑树在HashMap中的应用。 在讲之前,先要了解一下红黑树,再去阅读源码。本文就是这样的一个结构。但是一开始没有想到红黑树很复杂,篇幅比预期的要大,所以本次红黑树的记录分为三期,坑一定要慢慢填。。文章目录红黑树在HashMap中的应用(一)了解红黑树红黑树的历史红黑树的来源和变种二叉树二叉查找树AVL树2-3树2-3-4树红黑树红黑树的五条性质及其解释2-3-4树和红黑树之间的转换红黑树的性质解析红黑树的操作及其分析左旋转右旋
2021-03-14 15:10:34
980
原创 HashMap源码分析
HashMap源码分析 今天来看一下HashMap的源码,学习一下相关的知识点。不多啰嗦了,直接开始吧。 先看一段代码,是使用HashMap的代码,比较简单,先从代码入手。 Map<String, Date> test = new HashMap<>(); test.put("test1", new Date()); test.put("test2", new Date()); test.put("test1",
2021-03-02 14:15:14
226
原创 Java中基础运算符和知识点记录
Java中基础运算符和知识点记录 在阅读源码和其他的一些代码后,发现自己一些基础的运算符老是忘记(其实就是不懂。。。),所以专门写一篇博客记录一下,防止后续自己忘记。不多啰嗦,直接开始。 &:与运算符,位运算符的一种,表示同一位都为1时,最后结果才为1。例子:4&6=4(使用计算器将两个数都显示出来更加能够理解透彻) |:或运算符,位运算符的一种,表示同一位只要有一个为1,最后结果就为1。例子:4|6=6。 ~:非运算符,位运算符的一种,该位为1时,结果为0,该位为0时,结果
2021-02-25 14:48:35
119
原创 Java中Lambda表达式学习
Java中Lambda表达式学习 上一篇博客了解了线程的相关学习,学习的过程中看到一个注解@FunctionalInterface,本次的博客就来学习一下函数式接口。函数式接口可以用Lambda来创建,所以函数式接口的学习应该在Lambda表达式前面。 先来看一下函数式接口的文档定义:可以发现几个重要的点:函数式接口只有一个抽象方法。默认方法和覆盖方法都不计入抽象方法数目。可以用Lambda表达式、方法引用、构造函数引用来创建函数式接口实例。注解并不一定是必须的,只要符合要求,编译器会
2021-02-18 16:25:15
499
3
原创 记最近的一次工作中遇到的困惑
记最近的一次工作中遇到的困惑 在接近年底的时候,一般都没有什么重要的活了,今年不太一样,到了年底活还是比较多。我最开始以为这次的任务其他的没有什么不一样,如果是这样的话,我也不会写这一篇博客了,这次的任务中遇到的问题和一些事情改变了我的一些想法,有一些困惑和想法,不记录有些难受,也希望后面遇到类似的问题可以不再走弯路。先说说任务吧。 任务还是比较简单的,就是开发两个简单的平台,一个边缘端,一个中心端。边缘端相当于一个协议转换器,对一些设备的协议做转换,接收的数据存储和解析,然后上传到中心端。中心端类
2021-02-08 14:48:24
428
原创 Java线程深入学习
Java线程深入学习 上一篇博客讲了一下并发,但是没有达到自己的效果,所以这篇博客想从上一篇博客中的线程讲起,打算写一篇有着自己风格和能够让自己满意的博客。也是想深入了解一下线程的工作原理。 线程是程序中的执行线程。 Java虚拟机允许应用程序具有多个并发运行的执行线程。Java创建线程有两种方式(Java文档中这样说的,网上说应该还有一种,总共三种)一种是继承Thread类,一种是实现Runnable接口。下面先就第一种创建方法来说一下线程具体的流程。现在上代码。package ThreadTr
2021-01-13 18:16:54
122
原创 Java中并发了解和学习
Java中并发了解和学习 了解Java中的并发需要先清楚进程和线程的区别 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 说的更加通俗一点,进程相当于你电脑运行的各个软件,满足的你的不通需求。线程相当于进程中更加小的进程,例如打游戏时,你既可以看到画面,也能听到游戏的声音,这里就是不同的线程。线程和进程的区别
2021-01-05 17:56:02
199
原创 Netty编写客户端
Netty编写客户端 上一篇博客讲了一下解码器,但是其实没有涉及到客户端的编写,今天补上这篇博客。同时深入了解一下Netty(对于我来说)。加深自己的印象。 上面是一个简单的服务端的例子,之前的博客也讲过这个demo,下面按照自己最新的理解再次记录一下。首先是最开始创建两个线程组,boss线程组用来监听客户端的连接,只做到这一步,work线程组相当于干活的,当通道中有IO事件时就开始工作。这样做的好处就是可以提升读写性能。这一块的内容涉及到Netty的线程模型,这一块我不是很熟悉,找到一篇文章,大
2020-12-09 22:18:07
8132
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅