java实现三个线程A B C,A线程打印A之后才能B线程打印B,然后接着C线程执行打印C,继而循环下去

编程入门 行业动态 更新时间:2024-10-11 05:24:33

java实现三个<a href=https://www.elefans.com/category/jswz/34/1771240.html style=线程A B C,A线程打印A之后才能B线程打印B,然后接着C线程执行打印C,继而循环下去"/>

java实现三个线程A B C,A线程打印A之后才能B线程打印B,然后接着C线程执行打印C,继而循环下去

最近看到有人提问这个问题,而且好多人又是转载的,写了一大堆,看的我头都大了。于是自己做了个小程序轻松解决。
附上代码:
package pcitc;




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




public class MyThread implements Runnable{

final Lock locks = new ReentrantLock();

private String name;

public MyThread(String name) {
super();
this.name = name;
}




@Override
public void run() {
try {
locks.lock();
for (int i = 0; i < 5; i++) {
System.out.println("线程" + name);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
locks.unlock();
}
}




public static void main(String[] args) {
try {
MyThread A = new MyThread("A");
MyThread B = new MyThread("B");
MyThread C = new MyThread("C");
Thread threadA = new Thread(A);
Thread threadB = new Thread(B);
Thread threadC = new Thread(C);
threadA.start();
threadA.sleep(3);
threadB.start();
threadB.sleep(3);
threadC.start();
threadC.sleep(3);
} catch (Exception e) {
e.printStackTrace();
}
}

}


注:如果你尝试打断点进行跟踪,那么,很遗憾,你会获取不到相应的结果。必须直接运行。
其实这就是个给线程加锁的过程。很多人,想必都听说过synchronized关键字,这里所用到的是java.util.concurrent.locks包下的ReenTrantLock类,顾名词义,就是个锁,不同的是,它的锁可以手动控制。个人不喜欢synchronized,因为写起来具有局限性。以上只是一个很简单的例子就可以解决。但是实际开发真正遇到高并发量的情况下,那么问题就来了,你要想着如何去提高效率。以后,我会在微博中慢慢提到。
这是我的第一篇文章,让我微不足道的帮助与您一同成长。

更多推荐

java实现三个线程A B C,A线程打印A之后才能B线程打印B,然后接着C线程执行打印C,继而循环下去

本文发布于:2024-02-07 05:59:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753999.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:线程   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!