自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 java开发hutool工具你值得拥有

网址:https://www.hutool.cn/

2019-10-23 18:02:52 277

原创 synchronize锁的膨胀及批量重偏向和撤销

一个java对象包含:对象头,数据,对齐填充; 对象头包含:markword(如上图),类类型指针(klass word,如上图),legth(若是数组对象有这个值) 现在讲解下上图: 上图是jvm64位的对象头在各种锁状态下的信息;正常情况markword占64bit ;klass word 占64bit(一般默认开启指针压缩的:会压缩到32bit) 要分析对象头我们可以借助jo...

2019-10-22 17:48:21 1770

原创 并发之证明偏向锁存在

jdk锁的话synchronize在1.5之前都是重量级索,1.6之后有了偏向锁,轻量锁,重向锁; 重向锁就是每次获取锁都要直接调用操作系统的函数(这里指linux系统)pthread_mutex_lock(); 偏向锁是第一次也会调用操作系统函数,之后就不会在调用了; 证明之前先说java线程和os线程的关系;目前来说java和os线程是一一对应的; 当在java中开一个线程的时候,调用star...

2019-10-15 23:44:01 220

原创 java序列化demo

public class Testtest { public static void main(String[] args) throws IOException,ClassNotFoundException { // Person对象文件路径 String path = "d:/person.dat"; // 创建一个Person对象 ...

2019-10-09 15:57:37 158

原创 netty启动源码5

之前的服务端的channel初始化好了,接下来就会监听连接事件看以下reactor线程的死循环做的事情跟踪代码到 nioeventloop类的run方法 //事件循环 @Override protected void run() { for (;;) { try { try { ...

2019-10-06 11:57:45 135

原创 netty启动源码4

接着之前讲到 final ChannelFuture regFuture = initAndRegister(); 接下来讲doBind0(regFuture, channel, localAddress, promise); private ChannelFuture doBind(final SocketAddress localAddress) { //初始化和注册 ...

2019-10-05 13:48:49 122

原创 netty启动源码3

接着执行如下代码: ChannelFuture future = serverBootstrap.bind(8088).sync(); 这里是真正的启动源码的地方:这行代码做的事情太多太多太多…了 跟踪源码到AbstractBootstrap类的如下方法: private ChannelFuture doBind(final SocketAddress localAddress) { ...

2019-10-04 16:22:59 101

原创 netty启动流程源码2

执行如下代码: serverBootstrap.group(bossGroup,workerGroup) 跟踪代码: public ServerBootstrap group(EventLoopGroup parentGroup, EventLoopGroup childGroup) { //bossGroup,workerGroup super.group(parentGroup); Objec...

2019-10-04 12:00:20 82

原创 netty启动流程源码1

public static void main(String[] args) throws InterruptedException { //就是一个死循环,不停地检测IO事件,处理IO事件,执行任务 //创建一个线程组:接受客户端连接 主线程 EventLoopGroup bossGroup=new NioEventLoopGroup(1);//cpu核心数*2 ...

2019-10-04 11:32:34 124

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除