格式输出问题?

wusilou 2007-12-11 12:53:12
class PrintThread2 extends Thread
{
char ch;
static Object printer=new Object();
public PrintThread2(char ch)
{
this.ch=ch;
}
void printch()
{
synchronized(printer)
{
for(int i=1;i<=10;i++)
{
System.out.print(ch);
}
}
}
public void run()
{
for(int i=1;i<=5;i++)
{
printch();
System.out.println();
}
}
}
public class synchronization
{
public static void main(String[] args)
{
PrintThread2 pt1=new PrintThread2('A');
PrintThread2 pt2=new PrintThread2('B');
PrintThread2 pt3=new PrintThread2('C');
pt1.start();
pt2.start();
pt3.start();
}
}
什么是下面这样的输出的:
AAAAAAAAAA
AAAAAAAAAABBBBBBBBBB
CCCCCCCCCC
BBBBBBBBBBCCCCCCCCCC
CCCCCCCCCC

BBBBBBBBBBAAAAAAAAAA
AAAAAAAAAA
AAA

AAAAAAABBBBBBBBBB
CCCCCCCCCC
BBBBBBBBBBCCCCCCCCCC


为什么不是:
AAAAAAAAAA
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCC
BBBBBBBBBB
CCCCCCCCCC
CCCCCCCCCC
BBBBBBBBBB
AAAAAAAAAA
AAAAAAAAAA
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCC
BBBBBBBBBB
CCCCCCCCCC
不是线程竞争启动,然后在run方法中调用printch()方法同步输出10个字符后换行吗?
...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wusilou 2007-12-14
  • 打赏
  • 举报
回复
up
希偌 2007-12-13
  • 打赏
  • 举报
回复
printch()结束后就已经跳出同步块,要得到你想的结果把println写到同步块里去

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧