多线程
我爱袁婷
这个作者很懒,什么都没留下…
展开
-
深入理解Java并发之synchronized实现原理
synchronized底层语义原理 Java虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现,无论是显示同步(有明确的monitorenter和monitorexit指令,即同步代码块)还是隐式同步都是如此。在Java语言中,同步用得最多的地方可能是被synchronized修饰的同步方法。同步方法并不是由monitorenter和monitorexi...转载 2018-11-15 19:51:54 · 151 阅读 · 0 评论 -
Java内存模型JMM
Java内存模型定义 Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬件差异,给上层的开发者一个一致的使用接口。Java内存模型就是这样一个中间层的模型,它为程序员屏蔽了底层的硬件实现细节,支持大部分的主流硬件平台。 Java内存模型(Java Memory Mode):Java内存模型是java虚拟机内存如何与计算机内存(RAM)一起工作。 ...原创 2018-11-21 15:19:20 · 179 阅读 · 0 评论 -
I/O之BIO详解
简介 传统的BIO编程网络编程的基本模型是C/S模型,即两个进程间的通信。服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。 到底什么是“IO...原创 2019-01-20 19:29:50 · 901 阅读 · 0 评论 -
IO之NIO详解。
简介 NIO的全称是New I/O,与之相对应的是Java中传统的I/O,这里都指的是Java的API包。 传统的IO包提供的是同步阻塞IO,即当用户线程发出IO请求后,内核会去查看数据是否已经就绪,若未就绪,则用户线程会处于阻塞状态(让出CPU),当数据就绪后,内核会将数据复制到用户线程,并把结果返回给用户线程,同时接触用户线程的阻塞,同步体现在用户线程需要等待数据就绪后才能向后执行(后面的执行...原创 2019-01-20 20:02:33 · 183 阅读 · 0 评论 -
从AbstractQueuedSynchronizer到Reentrantlock。
前言 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 本文基于JDK1.8来解读从AQS到Reentrantlock源码。 什么是AQS AQS是AbustactQueuedSynchronizer的简称,它是一个Java提高的底层同步工具类,用一个int类型的变量表示同步状态,并提供了一系列...原创 2019-03-02 15:41:37 · 219 阅读 · 0 评论