java多线程学习总结
Java 多线程基础总结: 1. 使用 synchronized 关键字 2. 使用 JDK 5 中提供的 java.util.concurrent.lock 包中的 Lock 对象。 一. synchronized 关键字 java 线程同步的基本原理是采用了锁的机制,在 jvm 中,每个对象和类都分配一个锁和它关联,对象锁保护对象的实例变量,类锁其实也是通过对象锁来实现的,通过保护类的 Class 对象,实现锁对类的保护。 如果一个线程获取了某个对象的锁,其他线程就不能再获取该对象的锁了。在 java 程序中,使用 synchronized 块或者 synchronized 方法就可以标识一个同步区域,进入同步区域,需要得到同步区域指定的锁,进入 synchronized 方法需要的对象锁为当前对象,而进入 synchronized 块则需要得到 synchronized 关键字指定的对象的对象锁。一下为使用两者的例子: public synchronized void run() { for (int i = 1; i < 1000; i++) { System.out.println("No." + threadNo + ":" + i); } public void run() { synchronized(lock){ for (int i = 1; i < 1000;