java线程的交替输出_java线程同步问题,怎么交替输出

要求输出结果为:生产者:生产者生产商品0消费者:消费者消费商品0生产者:生产者生产商品1消费者:消费者消费商品1生产者:生产者生产商品2消费者:消费者消费商品2生产者:生产者生产商品3消...

要求输出结果为:

生产者:生产者生产商品0

消费者:消费者消费商品0

生产者:生产者生产商品1

消费者:消费者消费商品1

生产者:生产者生产商品2

消费者:消费者消费商品2

生产者:生产者生产商品3

消费者:消费者消费商品3

生产者:生产者生产商品4

消费者:消费者消费商品4

生产者:生产者生产商品5

消费者:消费者消费商品5

每条输出相隔一秒,怎么修改以下代码或者重编一个??

public class shopping {

public static void main(String args[]){

String a="生产者";

String b="消费者";

change c=new change(a,b);

Thread scz=new Thread(c);

Thread xfz=new Thread(c);

scz.setName(a);

xfz.setName(b);

scz.start();

xfz.start();

}

}

class change implements Runnable{

String sc,xf;

int count;

public change(String a,String b){

sc=a;

xf=b;

count=0;

}

public void run() {

changenumber();

}

public synchronized void changenumber(){

if(Thread.currentThread().getName().equals(sc)){

System.out.println(Thread.currentThread().getName()+":生产者生产商品"+count);

try{

Thread.sleep(1000);

}catch (Exception e) {

// TODO: handle exception

}

}

else if(Thread.currentThread().getName().equals(xf)){

System.out.println(Thread.currentThread().getName()+":消费者消费商品"+count);

try{

Thread.sleep(1000);

}catch (Exception e) {

// TODO: handle exception

}

}

}

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值