Java Concurrency-03-thread safety
java 线程安全
线程安全
定义线程安全性非常棘手。一个快速的谷歌搜索出现了许多这样的“定义”:
线程安全的代码是可以工作的代码,即使许多线程同时执行它。
如果一段代码只以保证多个线程同时安全执行的方式操作共享数据结构,那么它就是线程安全的。
难道你不认为上面的定义实际上没有传达任何有意义的东西,甚至增加了一些混乱。
虽然这些定义不能像那...
2018-07-24 08:11:28 |
Java
Java Concurrency-02-thread topic
JDK 版本特性更迭
JDK 1.X
功能类
java.lang.Thread
java.lang.ThreadGroup
java.lang.Runnable
java.lang.Process
java.lang.ThreadDeath
异常类
java.lang.IllegalMonitorStateException
java.lang.IllegalSt...
2018-07-24 07:52:20 |
Java
Java Concurrency-01-thread
Thread
进程和线程的区别?
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
但对...
2018-07-24 07:34:24 |
Java
Java Concurrency-00-intro
Java Concurrency
简单地说,并发性是并行运行多个程序或程序的几个部分的能力。
并发性使程序能够利用底层操作系统和机器硬件尚未开发的功能来实现高性能和吞吐量。
例如,现代计算机在一个CPU中有多个CPU或多个内核,程序可以利用所有的内核进行部分处理;因此,与顺序处理相比,提前完成任务的时间要早得多。
java并发的主干是线程。
线程是一个轻量级进程,它有自己的调用堆栈...
2018-07-24 07:34:24 |
Java
Aspectj
Aspectj
配置
启用IDEA版本的aspectj插件
Project Setting –> Compiler –> Java Compiler设置编译器为Ajc
Path to Ajc compiler 设定 aspjectjtools.jar 的路径,下载地址:https://mvnrepository.com/...
2018-07-23 08:58:17 |
Java
javassist
javassist
javassist (Java编程助手)使Java字节码操作变得简单。
它是Java中编辑字节码的类库;它允许Java程序在运行时定义新类,并在JVM加载类文件时修改类文件。
与其他类似的字节码编辑器不同,Javassist提供了两个级别的API:源级和字节码级。
如果用户使用源代码级API,他们可以编辑类文件,而不需要了解Java字节码的规范。
整个API只使...
2018-07-23 07:11:33 |
Java
CGLIB
CGLIB
CGLIB is a powerful, high performance and quality Code Generation Library,
It is used to extend JAVA classes and implements interfaces at runtime.
cglib-missing-manual
CGLIB and Java ...
2018-07-23 00:57:50 |
Java
ASM-22-Tree 向后兼容能力
介绍
与核心API一样,ASM 4.0的树API中也引入了一种新机制,以确保在将来的ASM版本中向后兼容。
但是,这里再次不能单独通过ASM来确保此属性。
要求用户在编写自己的文章时遵循一些简单的准则
码。
本章的目的是介绍这些准则,并给出ASM树API中使用的内部机制的概念,以确保向后兼容。
指导方针
本节介绍了使用ASM树API时必须遵循的准则,以确保您的代码在以后的任何AS...
2018-07-20 05:43:31 |
Java