什么是线程 为了说明什么是线程,首先需要强调一点,什么是进程。所谓进程,就是正在运行的程序代码。每个进程之间是相互隔离的,两个进程有不同的栈,堆,寄存器组,PC,虚拟地址空间等。而线程是进程中更小的单位,与进程相类似,每一个线程也有他自己的context,包括它自己的寄存器,PC,栈等。但是一个线程会共享创建它的父进程的中的堆,打开的文件(即文件描…
因为CPU缓存的关系,以及指令的重排等等原因。有时候线程操作的变量往往是它从内存中复制过来到CPU缓存内的,所以修改完了如果没有flush到内存,那么可能会出现不一致。道理大概是这么个道理,在Java中,每个线程有自己的缓存大小,对于数据操作的时候,先操作线程内部的数据。所以其他线程对于该数据的变化看不到。所以引入了volatile 关键词来保证,…
记录一下反射的基本用法。反射其实很简单,就是能够在让代码在运行时候使用其他类。本篇内容基本来自这里。 Class对象 如果需要对一个类使用反射,那么首先需要获得这个类的class对象。如一个MyClass的类: Class classObj = MyClass.class; 就可以获得这个类的class对象。另外一种来获得Class对象的方式是使用…