![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其他
文章平均质量分 63
书唐瑞
个人站点: www.infuq.com
个人公众号: Netty历险记
展开
-
MySQL锁杂谈
MySQL锁杂谈原创 2022-11-26 18:02:08 · 747 阅读 · 0 评论 -
docker中安装jenkins
jenkins原创 2022-10-24 02:18:16 · 273 阅读 · 0 评论 -
当进程退出和机器宕机时TCP连接发生什么
当进程崩溃和机器宕机时TCP连接发生什么原创 2022-09-11 17:54:38 · 1098 阅读 · 0 评论 -
TCP SYNCookie机制
TCP SYN cookie机制原创 2022-08-29 03:47:24 · 1627 阅读 · 0 评论 -
Java线程发生IO阻塞时的线程状态
Java线程阻塞在IO操作时的线程状态原创 2022-08-07 04:08:36 · 1048 阅读 · 0 评论 -
ping数据包中的进程号
ping数据包中的进程号原创 2022-07-30 13:28:42 · 1151 阅读 · 0 评论 -
查看JVM进程的内存情况
// DirectMemory.javapackage com.infuq.memory;import org.jctools.util.UnsafeAccess;import sun.misc.Unsafe;import org.openjdk.jol.info.ClassLayout;import org.openjdk.jol.vm.VM;import java.util.Scanner;public class DirectMemory { public static v原创 2022-04-16 14:42:45 · 4335 阅读 · 0 评论 -
NoSuchMethodError 与 Linux系统读取目录内文件顺序
Linux系统读取目录内文件顺序是依据什么原创 2022-03-18 20:01:23 · 1411 阅读 · 0 评论 -
验证子线程分配的内存空间在内存映射区
子线程分配的内存空间在内存映射区原创 2022-03-14 03:57:17 · 581 阅读 · 0 评论 -
Tomcat访问静态资源txt出现乱码
在访问Tomcat上的静态资源txt文件时,出现乱码修改apache-tomcat-8.5.35/conf/web.xml文件内容如下<mime-mapping> <extension>txt</extension> <mime-type>text/plain;charset=UTF-8</mime-type></mime-mapping><servlet> <servlet-nam原创 2022-01-06 23:26:47 · 675 阅读 · 0 评论 -
Dubbo存在内存泄漏
Dubbo存在内存泄漏原创 2022-01-01 18:00:52 · 2099 阅读 · 3 评论 -
com.alibaba.fastjson存在内存泄漏
fastjson存在内存泄漏原创 2021-12-31 21:38:24 · 2991 阅读 · 1 评论 -
读取 & 传输文件脚本
读取jinfo命令并传输原创 2021-12-26 17:15:24 · 531 阅读 · 0 评论 -
Spring 和 Mybatis 使用不同的数据源会怎样?
Spring和Mybatis使用不同的数据源导致事务问题原创 2021-12-25 13:24:19 · 933 阅读 · 0 评论 -
编译elasticsearch6.1.2 & 本地启动
编译elasticsearch6.1.2 并本地启动原创 2021-12-19 13:30:41 · 1895 阅读 · 0 评论 -
文件 ... 阻塞
关于同步,异步,阻塞,非阻塞 这一类概念.真理也许只有一个,然而每个人处于不同的境界,对它的认知有对有错, 个人感觉,绝大多数人对它的认知都是错误或者不完整.以前看过一段话, 意思就是说, “对于一个观点, 说到它的时候, 两个人都懂, 但是真正深入讨论这个观点的时候, 两个人就开始吵架了”https://stackoverflow.com/questions/34041403/what-is-blocking-mode-in-javahttps://www.remlab.net/op/nonbl原创 2021-11-30 15:40:59 · 305 阅读 · 0 评论 -
Java线程与内核线程
本篇文章探究下Java线程与内核线程的关系.在Java中,一个Java的线程对应一个内核的线程,实际的业务代码是由内核线程来执行的,而Java线程只是一个傀儡.先通过一个简单的实验热热身import java.lang.Thread;public class Example { public static void main(String[] args) throws Exception { new Thread(new Runnable() { @O原创 2021-09-20 13:17:43 · 717 阅读 · 0 评论 -
Netty之线程唤醒wakeup [续]
在之前的Netty之线程唤醒wakeup文章中, 介绍了如何唤醒Netty中的监听线程. 接下来我们通过源码的角度,结合一些命令,看一下它的实现.// WakeUp.javaimport java.net.InetSocketAddress;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSocketChannel;import java.原创 2021-09-14 01:01:06 · 282 阅读 · 0 评论 -
JVM中的监听信号的线程以及Unix域套接字通信的线程
【实验】package com.infuq.tmp;public class Main { public static void main(String args[]) { for (;;) { try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace();原创 2021-09-12 11:24:07 · 329 阅读 · 0 评论 -
Unsafe.putOrderedXXX系列方法详解(数组赋值的第二种方式)
在Netty中,IO线程用于存储任务的容器是MpscUnboundedArrayQueue类.所有对外的读写操作,都’委托’给IO线程来执行,非IO线程(比如业务线程)若要写数据,必须将写操作封装成一个任务,提交到IO线程的任务队列中.IO线程会择机执行任务队列中的任务,将数据写入到网络(实际只是写到TCP缓冲区). 那么这个任务队列就很重要了,它必须是高性能的. 在Netty以前的版本中,使用JDK的BlockingQueue实现这个任务队列,而Netty是一个追求性能极致的框架(不被规则和常规所束缚)原创 2021-05-27 17:13:35 · 1034 阅读 · 1 评论 -
操作中划线-开头的文件
操作中划线-开头的文件本例的文件名是 -xyz创建touch -- -xyztouch ./-xyz查看ls -i -- -xyzls -i ./-xyz删除rm -f -- -xzyrm -f ./-xyzrm `find . -inum 396482`find . -inum 396482 -exec rm -i {} \;注释:396482表示文件的inode值...原创 2021-05-18 14:45:30 · 272 阅读 · 0 评论 -
操作系统之实模式和保护模式(简图)
个人站点语雀公众号原创 2021-05-16 23:16:37 · 232 阅读 · 0 评论 -
Java线程在操作系统层面的一些‘蛛丝马迹‘
作为Java开发人员,在日常的开发工作中,无时无刻不在和线程打交道.本篇文章并不是讲解线程的相关知识.而是在Linux平台使用一些命令工具,观察下Java线程在操作系统层面的一些’蛛丝马迹’.【平台】Win10平台上安装的Ubuntu 18.04 LTS首先从C语言层面,观察下会有几个线程或进程.代码如下// thread.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main原创 2021-05-15 18:47:38 · 205 阅读 · 0 评论 -
Linux终端Tab提示忽略大小写
如图所示在tmp目录下有两个目录,C和python在敲击cd c希望进入到C目录, 但是默认区分大小写, 由于敲击的是小写c, 而当前tmp目录没有小写c目录,只有大写C目录.通过以下改动,可以实现在敲击cd c命令的时候, 即便敲击的是小写c, 也会自动匹配大写C改动如下1.首先在家目录下新建一个.inputrc文件2.文件内容如下set completion-ignore-case on保存,退出,重新登录即可...原创 2021-05-15 01:39:25 · 610 阅读 · 0 评论 -
虚拟内存结构图
个人站点语雀公众号原创 2021-05-02 13:47:54 · 548 阅读 · 0 评论 -
线上消息堆积与感想
发送邮件超时,导致消息堆积原创 2021-04-26 22:59:06 · 450 阅读 · 0 评论 -
编译OpenJDK&CLion导入&修改JDK源码
编译JDK&修改JDK源码原创 2021-04-15 06:37:12 · 1353 阅读 · 1 评论 -
maven命令行下载依赖包&java命令执行class
【场景和需求】在Linux系统下, 没有第三方的集成开发工具(如IDEA), 如何下载Jar包, 以及如何运行.java文件【解决步骤】配置maven环境配置Java环境如何配置此处就不介绍了, 属于基础操作此处以下载netty为例在官网 https://mvnrepository.com/ 查找需要下载的依赖包的groupId等, 比如查找到下载4.1.63.Final版本netty<dependency> <groupId>io.netty</g原创 2021-04-13 17:23:29 · 950 阅读 · 1 评论 -
杂记
刚才在随便浏览Netty的官网, 突然间发现一个东东在官网首页, 点击下拉Related Articles,会看到如下内容关于介绍Netty的文章, 而且是中国人写的文章, 链接会导向到简书文章.有一定深度学习会Netty的同学, 对上面图中的闪电侠这个名称应该不会陌生.让我感触的是【1】在Netty的官网有中国人的’身影’, 为国人争光【2】在学习Netty,或者其他一门技术, 能让自己的名字出现在官网或权威的地方, 也是对自己能力的一种肯定【3】以上两点说的是他人, 而自己能做的就是继续原创 2021-04-07 23:05:18 · 181 阅读 · 0 评论 -
使用汇编语言向屏幕打印内容
【实验目的】使用汇编语言编写一段程序, 向屏幕中显示’Welcome to OS!'字符【工具】https://www.dosbox.com/download.php?main=1https://github.com/infuq/infuq-others/tree/master/Assembly/tools【汇编代码】assume cs:codesg,ds:datasg,ss:stacksg; 向屏幕中间打印数据段中的数据'Welcome to OS!'datasg segment d原创 2021-03-21 17:02:42 · 2259 阅读 · 1 评论 -
Win10本地启动Zookeeper注意事项
本文主要记录一下, 自己在Win10环境下启动Zookeeper遇到的几点小问题.从官网下载ZK之后, 解压, 拷贝conf/zoo_sample.cfg文件,命名为zoo.cfgzoo.cfg具体内容如下(非生产环境配置,仅为了测试)# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLi原创 2021-03-15 22:00:48 · 655 阅读 · 0 评论 -
迁移Zookeeper时Dubbo是否会注册到新的ZK上
为了说明问题, 这里描述一下场景.应用配置的ZK地址是zk.infuq.com, 通过DNS解析的IP是192.168.0.1, 因此应用连接到了ZK1然后把DNS的映射关系改成如下图所示,让zk.infuq.com解析成ZK2的IP(192.168.0.2), 先关闭ZK1的服务(或者禁用2181端口的出入流量)过了1分钟再开启服务(目的就是让ZK1和应用断开连接),根据应用(Dubbo应用)的重连机制, 最后应用连接注册到ZK2上.然而, 这样操作之后, 应用真的可以连接到ZK2上吗?先说下原创 2021-03-07 20:18:50 · 371 阅读 · 0 评论 -
更改Typora宽度
【Windows平台】在日常使用Typora写内容的时候,经常会存在有效内容的宽度不够宽的情况.如何修改宽度呢?再确定下当前配置的主题,根据配置的主题,打开不同的.css文件查找到#write, 修改max-width值.重启Typora即可.最终效果图个人站点语雀公众号...原创 2021-01-19 03:25:48 · 2254 阅读 · 1 评论 -
线上Dubbo线程池名称的一点疑惑
今天晚上在排查线上问题的时候,突然发现一个认为很奇怪的地方(最终确定是我的误判).作为Dubbo提供者,Dubbo线程的名称很奇怪.如下图比如机器的IP是127.0.0.1,对外提供的端口是20880,那么Dubbo业务线程池中的线程名称应该叫做DubboServerHandler-127.0.0.1:20880-thread-17这样才对.可是线上这个线程的名称后面那个数字是4213,这个数字很大.根据掌握的知识,Dubbo默认使用的线程池是固定大小的FixedThreadPool.线程数量默认20原创 2020-12-14 23:46:11 · 603 阅读 · 0 评论 -
macOS还原重装系统
前几天升级系统到big sur之后,发现散热比较高,软件运行不顺畅,于是将系统重装还原到之前的版本.因为数据会被格式化清除,请在重装之前做好数据备份.步骤如下1.下载macOS Catalina.app当然,你可以选择其他版本,比如macOS Mojave.app这里提供两个版本的下载地址https://apps.apple.com/cn/app/macos-catalina/id1466841314?l=en&mt=12https://apps.apple.com/cn/app/ma原创 2020-11-21 09:50:17 · 985 阅读 · 0 评论 -
线程池中的2个注意点
线程池在日常开发中多多少少都会接触和使用.其中和线程池关系最为紧密的一个就是阻塞队列,用于存储提交到线程池中的任务.关于向阻塞队列中添加任务和获取任务会涉及到很多方法,如下那么当我们向线程池提交任务的时候,它会调用上面的哪个方法呢?// 代码位置: java.util.concurrent.ThreadPoolExecutor#executepublic void execute(Runnable command) { int c = ctl.get(); if (w原创 2020-11-15 13:31:23 · 239 阅读 · 0 评论 -
修改mac电脑上Microsoft Office显示语言
打开的菜单栏显示英文.1.退出应用2.执行命令defaults write com.microsoft.Word AppleLanguages '("zh-cn")'defaults write com.microsoft.Excel AppleLanguages '("zh-cn")'defaults write com.microsoft.Powerpoint AppleLanguages '("zh-cn")'例如3.重新打开应用即可正常显示中文了...原创 2020-11-15 12:16:10 · 1655 阅读 · 1 评论 -
JVM之类加载器
public class Example { private static Example obj = new Example(); static int v1; static int v2 = 0; private Example() { v1++; v2++; } public static Example getInstance() { return obj; } public st原创 2020-11-14 21:19:52 · 195 阅读 · 0 评论 -
指令重排序案例的个人观点
指令重排序原创 2020-11-08 02:06:11 · 297 阅读 · 1 评论 -
OpenJDK源码下载
下载JDK原创 2020-11-07 22:08:21 · 1477 阅读 · 0 评论