线程1能打印出:0,2,4,6,8,,线程2能打印出1,3,5,7,9
需求:打印出1,2,3,4,5,6,7,8,9
程序入口
//参看消费和生产 https://blog.csdn.net/XiaopinOo/article/details/76630973
public class TestThread {
public static void main(String[] args) {
Print p = new Print();
B b = new B(p);
A a= new A(p);
a.start();
b.start();
}
}
线程A
class A extends Thread{
Print p;
public A(Print p){
this.p= p;
}
public void run() {
p.odd();
}
}
线程B
class B extends Thread{
Print p;
public B(Print p){
this.p= p;
}
public void run() {
p.even();
}
}
打印
class Print{
int[] a={0,2,4,6,8};
int[] b={1,3,5,7,9};
boolean oFlag =true; //奇数线程 挂起标识
boolean eFlag =false; //偶数线程 挂起标识
/**
* 打印偶数
* synchronized:在同一时间只会被同一线程访问
*/
public synchronized void even()
{
for(int i = 0; i < a.length; i++){
if(eFlag){

本文探讨如何通过线程优化实现两个线程交替打印出连续的奇偶数。线程1负责打印偶数,线程2负责打印奇数,最终顺序为1,2,3,4,5,6,7,8,9。通过main方法启动线程,利用挂起标识、wait和notify方法确保线程间的交替执行。"
129993576,8417389,Microsoft Exchange Online Protection部署实战,"['microsoft', '服务器', '网络', '运维']
最低0.47元/天 解锁文章

2908

被折叠的 条评论
为什么被折叠?



