Java线程同步之重入锁
Java线程同步之重入锁
Java线程同步除了原子变量,synchronized之外还可以使用重入锁来完成线程的同步。重入锁 使用java.util.concurrent.locks下面的Locks类。
Java Hashtable多线程操作遍历问题
Java多线程顺序执行
Java多线程问题之同步器CyclicBarrier
Java多线程之wait()和notify()
Java多线程之synchronized
Java多线程之并发锁
下面演示Locks 的使用。代码如下:
package com.Android.test;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/*
重入锁的使用方式如下:
Lock l = ...;
l.lock();
try {
// access the resource protected by this lock
} finally {
l.unlock();
}
*/
public class ReentrantLockDemo implements Runnable {
private int number = 0;
// 定义一个重入锁
private Lock lock = new ReentrantLock();
@Override
public void run() {
// TODO Auto-generated method stub
lock.lock();
try {
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ":" + number++);
}
} finally{
lock.unlock();
}
}
public static void main(String [] args){
ReentrantLockDemo run = new ReentrantLockDemo();
Thread thread1 = new Thread(run);
Thread thread2 = new Thread(run);
thread1.start();
thread2.start();
}
}
运行结果如下:
Thread-0:0
Thread-0:1
Thread-0:2
Thread-0:3
Thread-0:4
Thread-1:5
Thread-1:6
Thread-1:7
Thread-1:8
Thread-1:9
本文永久更新链接地址:
评论暂时关闭