searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Java多线程-线程交替执行任务——公平锁

2024-02-20 06:53:26
1
0

Java多线程-线程交替执行任务——公平锁

LockDemo.java

package com.thread.synchronizedDemo.lock;

import java.util.concurrent.locks.ReentrantLock;

/**
 * @author 007
 * @ClassName 类名称
 * @Description 类描述
 */

public class LockDemo implements Runnable {
	
	// 定义一个数用来交替更改数字的正负号
	private int j = 1;
	// 定义公平锁,用来是线程1和线程2交替执行
	ReentrantLock lock = new ReentrantLock(true);

	@Override
	public void run() {
		for(int i = 1; i < 100; i++){
			//获取锁
			lock.lock();
			try{
				System.out.println(Thread.currentThread().getName()+" "+i*j);
				j=-j;
			}finally{
				//释放锁
				lock.unlock();
			}
		}
	}

}

TestLock.java

package com.thread.synchronizedDemo.lock;
/**
* @author 007
* @ClassName 类名称
* @Description 类描述
*/

public class TestLock {
	public static void main(String[] args) {
		//创建对象
		LockDemo lockDemo = new LockDemo();
		//创建两个线程,启动两个线程
		new Thread(lockDemo,"线程1").start();
		new Thread(lockDemo,"线程2").start();
	}
}

 

输出结果

线程1 1
线程2 -1
线程1 2
线程2 -2
线程1 3
线程2 -3
线程1 4
线程2 -4
线程1 5
线程2 -5
线程1 6
线程2 -6
线程1 7
线程2 -7
线程1 8
线程2 -8
线程1 9
线程2 -9
线程1 10
线程2 -10
线程1 11
........

 

0条评论
0 / 1000