最近在读Undertow的源码,对于ServletPrintWriterDelegate类的实现比较感兴趣,做个记录。 源码github坐标:ServletPrintWriterDelegate.java 该类继承的是PrintWriter,但是由于并不实用PrintWriter中的OutputSt... ...
分类:
其他好文 时间:
2018-04-09 13:11:15
阅读次数:
189
锁 锁是用来做并发的最简单的方式,其代价也是最高的,java 在JDK1.5之前都是通过synchronized关键字来保证同步的,他是一种独占锁,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态内核态间的切换操作额外浪费消耗cpu资源,锁还存在着其它一些缺点,当一个线程正在等待锁 ...
分类:
编程语言 时间:
2018-03-31 14:47:25
阅读次数:
236
一提到JVM运行的的内存划分,相信大家都会第一反应想到堆内存和栈内存。如果再分清楚一些,就是常说的运行时数据五大部分:方法区,虚拟机栈,本地方法栈,堆,程序计数器。本文重点聊一聊直接内存(DirectMemory),直接内存并不是运行时数据区的一部分,也不是Java虚拟机规范中定义的内在区域。它通过Unsafe类的allocateMemory()方法申请分配内存,可以通过-XX:MAxDirect
分类:
其他好文 时间:
2018-03-29 20:04:52
阅读次数:
128
java多线程编程的无锁CAS底层都是通过 Unsafe进行操作的:源码如下 ...
分类:
编程语言 时间:
2018-03-27 18:55:41
阅读次数:
195
转: MYSQL ERROR CODE 错误编号的意义 转: MYSQL ERROR CODE 错误编号的意义 mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删 ...
分类:
数据库 时间:
2018-03-22 10:58:32
阅读次数:
255
+ + | Variable_name | Value | + + + | auto_increment_increment | 1 | | auto_increment_offset | 1 | | automatic_sp_privileges | ON | | back_log | 50 | ...
分类:
数据库 时间:
2018-03-19 20:58:19
阅读次数:
223
原来C#不仅仅支持和C/C++中指针(或者说是引用)很像的委托delegate,还支持在unsafe代码块中使用指针,从而写非托管的代码(人为不让垃圾回收机制来管理相应的内存)。在unsafe中就可以使用指针,基本用法和C++差不多(果然是一家人,哈哈)。 在用指针调用数组的时候需要使用fixed语 ...
Java语言和JVM平台已经度过了20岁的生日。它最初起源于机顶盒、移动设备和Java-Card,同时也应用在了各种服务器系统中,Java已成为物联网(Internet of Things)的通用语言。我们显然可以看到Java已经无处不在! 但是不那么为人所知的是,Java也广泛应用于各种低延迟的应 ...
分类:
其他好文 时间:
2018-03-03 12:26:38
阅读次数:
172
java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能: 类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。 字段的定 ...
分类:
编程语言 时间:
2018-02-11 16:12:15
阅读次数:
539
■ 前言 之前 LockSupport 那篇已经叙述了是线程阻塞工具类,其底层由 Unsafe 实现,即 park(), unpark() 方法,获取指针偏移量,并操纵内存。本篇主要介绍 Unsafe 的源码,看看底层到底做了什么。 ■ Unsafe 综述 作用: Unsafe是个后门类,封装了一些 ...
分类:
其他好文 时间:
2018-02-07 15:04:16
阅读次数:
317