使用ReentrantLock的newCondition交替输出数组中元素的方法分享

java-教程王 Java面经 发布时间:2021-12-03 09:41:09 阅读数:6145 1
package com.java265.other;

import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;

public class Test6_1 {

	static Thread t2 = null;
	static Thread t1 = null;

	public static void main(String[] args) throws Exception {

		ReentrantLock rt = new ReentrantLock();
		Condition l1 = rt.newCondition();
		Condition l2 = rt.newCondition();

		t1 = new Thread(() -> {
			rt.lock();
			for (int i = 0; i < 26; i++) {
				char c = (char) (i + (int) 'a');

				try {
					l2.signal();
					l1.await();
					System.out.print(c);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}

				


			}
			l2.signal();
			rt.unlock();

		});

		t2 = new Thread(() -> {
			rt.lock();
			for (int i = 1; i <= 26; i++) {


				try {
					l1.signal();
					l2.await();
					System.out.print(i + " ");

				} catch (InterruptedException e) {
					e.printStackTrace();
				}


			}
			l1.signal();
			rt.unlock();
		});


		t1.start();
		t2.start();


	}
}
-----运行以上代码,将输出以下信息----
a1 b2 c3 d4 e5 f6 g7 h8 i9 j10 k11 l12 m13 n14 o15 p16 q17 r18 s19 t20 u21 v22 w23 x24 y25 z26 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202112/16384957941989.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者