码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA高并发程序设计学习-JDK并发包:同步控制一

时间:2016-09-28 01:19:55      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:

JDK内部提供了大量的API和框架,这里主要介绍三部分

  • 多线程同步控制方法
  • 线程池,提高线程调度的性能
  • JDK的并发容器

重入锁:java.util.concurrent.locks.ReenterLock

在代码中,类ReenterLock实现了Runnable,其中有static的变量i,在run()方法中会对i进行自增操作。

自增操作的步骤为:get-set,先获取值再增加值。

如果在这里不进行控制的话,会导致get的值不是最新set的值

因此,在自增的时候使用锁进行控制,保证get-set操作的时候只有一个线程操作。

package com.tuniu.concurrency;

import java.util.concurrent.locks.ReentrantLock;

public class Lock {
	public static void main(String[] args) {
		ReenterLock lock = new ReenterLock();
		Thread t1 = new Thread(lock);
		Thread t2 = new Thread(lock);
		t1.start();
		t2.start();
	}
}

class ReenterLock implements Runnable {
	public static ReentrantLock lock = new ReentrantLock();
	public static int i = 0;
	
	public void run() {
		for (int j = 0; j<1000; j++) {
			lock.lock();
			try {
				i++;
			} finally {
				lock.unlock();
			}
		}
	}
	
}
 

JAVA高并发程序设计学习-JDK并发包:同步控制一

标签:

原文地址:http://www.cnblogs.com/jiejiecool/p/5914682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!