volatile

volatile作用

在Java并发编程中,volatile 是经常用到的一个关键字,它可以用于保证不同的线程共享一个变量时每次都能获取最新的值。volatile具有锁的部分功能并且性能比锁更好,所以也被称为轻量级锁。

一个变量被volatile修饰,则:

  1. 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。
  2. 禁止进行指令重排序。
Read More

Thread

Java中的Thread的用法

同步队列与等待队列

  • 同步队列:所有尝试获取该对象Monitor失败的线程,都加入同步队列排队获取锁。调用了start、notify方法后会进入该队列。

  • 等待队列:已经拿到锁的线程在等待其他资源时,主动释放锁,置入该对象等待队列中,等待被唤醒,当调用notify会在等待队列中任意唤醒一个线程,
    将其置入同步队列的尾部,排队获取锁。调用wait方法时,会进入该队列。

Read More

Java中的异常

Java语言是编译型语言,Java代码编译成字节码,然后由JVM解释成目标代码由CPU执行;这里包含我们常说的两个过程,即编译时和运行时;
Java语言把编译时可能产生的异常称为受检查异常,把运行时可能产生的异常称为不受检查异常(比如NullPointException和ClassNotFoundException)。