设为首页 加入收藏

TOP

Java线程输出ABCD
2014-11-24 03:11:46 来源: 作者: 【 】 浏览:2
Tags:Java 线程 输出 ABCD

Java线程输出ABCD


package xufeng.java;
public class Printer implements Runnable{
// 输出字符
String printStr = null;

// 下一个输出对象
Printer nextPrinter = null;

public Printer(String str)
{
printStr = str;
}

public void setNextPrinter(Printer nextPr)
{
nextPrinter = nextPr;
}

@Override
public void run() {
for (int i = 0; i < 10; i++)
{
synchronized (nextPrinter) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.print(printStr);
nextPrinter.notifyAll();
}

synchronized (this) {
try {
this.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}
}


package xufeng.java;
public class MainTest {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
Printer a = new Printer("A");
Printer b = new Printer("B");
Printer c = new Printer("C");
Printer d = new Printer("D");

// 设置前后关系
a.setNextPrinter(b);
b.setNextPrinter(c);
c.setNextPrinter(d);
d.setNextPrinter(a);
// 启动线程。相隔一秒以免初始输出顺序混乱
new Thread(a).start();
Thread.sleep(1000);
new Thread(b).start();
Thread.sleep(1000);
new Thread(c).start();
Thread.sleep(1000);
new Thread(d).start();
}
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android怎么使用数据库简述 下一篇使用Android获取的音乐文件数据库

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)