Java线程输出字母大小写_java 多线程编程 交替打印大小写字母的问题

packageThread;classMyprint{intsize;//26个字母inti=0;publicMyprint(intsize){this.size=size;}publicsynchronizedvoidDa(){for(inti=0;i<26;i++){System.out.println((char)('A'+i...

package Thread;

class Myprint{

int size; //26个字母

int i=0;

public Myprint(int size)

{

this.size=size;

}

public synchronized void Da()

{

for(int i=0;i<26;i++)

{

System.out.println((char)('A'+i));//大写打印之后等待

try

{

wait();

}catch(Exception e){}

}

notify();//唤醒小写

}

public synchronized void Xiao()

{

for(int i=0;i<26;i++)

{

System.out.println((char)('a'+i)); //小写打印之后等待

try

{

wait();

}catch(Exception e){}

}

notify();//唤醒大写

}

}

class Capital extends Thread{

Myprint my=null;

public Capital(Myprint my){

this.my=my;

}

@Override

public void run(){

while(my.i

{

my.Da();//打印大写

}

}

}

class Lowercase extends Thread{

Myprint my=null;

public Lowercase(Myprint my){

this.my=my;

}

@Override

public void run(){

while(my.i

{

my.Xiao();//打印小写

}

}

}

public class Test {

public static void main(String[] args) {

// TODO Auto-generated method stub

Myprint m=new Myprint(26);

new Capital(m).start();

new Lowercase(m).start();

}

}

这是我的代码,运行结果只有:A a 。有谁知道该怎么让一个线程打印大写,一个线程打印小写,然后两者交替打印吗? 感觉好像我的wait()和notify()出了问题,但是不知道具体是什么问题。

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值