设为首页 加入收藏

TOP

Java线程同步之重入锁
2014-11-23 23:41:51 来源: 作者: 【 】 浏览:7
Tags:Java 线程 同步

Java线程同步除了原子变量,synchronized之外还可以使用重入锁来完成线程的同步。重入锁 使用java.util.concurrent.locks下面的Locks类。


相关阅读:




下面演示Locks 的使用。代码如下:


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java 线程编码之霓虹灯的实现 下一篇Android 平台framerwork层jar的添..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: