为了账号安全,请及时绑定邮箱和手机立即绑定

使用多线程实现输出1-a 2-b 3-c 4-d ..........26-z

标签:
Android

1.缓冲类

package demo07;

public class Buffer {

private static final int maxCount=1;//最大存储线程数量

private int  ch;

private int  charnum='a'-1;//字母a-z

private int num=0;//数字1-26

public Buffer(int ch){

this.ch=ch;

}

synchronized public void outNumbers(int ch){

while(this.ch+ch>maxCount){

    try {

this.wait();

} catch (Exception e) {

e.printStackTrace();

}

}

this.num++;

System.out.print(this.num+"--");

this.ch+=ch;

this.notifyAll();

}

synchronized public void outChars(int ch){

while(this.ch<maxCount){

try {

this.wait();

} catch (Exception e) {

e.printStackTrace();

}

}

this.charnum+=1;

System.out.println((char)this.charnum);

this.ch-=ch;

this.notifyAll();

}

}

2.数字输出类

package demo07;

public class Numbers extends Thread{

private Buffer buffer;

private int ch;

public Numbers(Buffer buffer,int ch){

this.buffer=buffer;

this.ch=ch;

}

@Override

public void run() {

this.buffer.outNumbers(ch);

}

}

3.字母输出类

package demo07;

public class CharNumbers extends Thread{

private Buffer buffer;

private int ch;

public CharNumbers(Buffer buffer,int ch){

this.buffer=buffer;

this.ch=ch;

}

@Override

public void run() {

this.buffer.outChars(ch);

}

}

4.测试类

package demo07;

public class Test {

/**

 * @param args

 */

public static void main(String[] args) {

Buffer buffer=new Buffer(0);

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

Thread num=new Numbers(buffer,1);

Thread charnum=new CharNumbers(buffer,1);

num.start();

charnum.start();

    }

}

}

原文链接:http://www.apkbus.com/blog-813041-61024.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消