线程的部分代码

Java线程详解

把线程内容的部分代码摘录如下


packageThread;
//本例题展示了单线程的情况,输出结果只输出son.run();的执行情况
//sonmainson
//sonmainson
//sonmainson
//sonmainson
//

publicclassTestA...{
publicstaticvoidmain(String[]args)
...{
MyThreadson
=newMyThread();
son.run();
while(true)
...{
System.out.println(
"main"+Thread.currentThread().getName()+"main");
}

}

}

classMyThread
...{

voidrun()
...{
while(true)
...{
System.out.println(
"son"+Thread.currentThread().getName()+"son");
}

}


}


packageThread;
//本例实现了多线程,通过继承Thread实现
//mainmainmain
//mainmainmain
//mainmainmain
//mainmainmain
//mainmainmain
//mainmainmain
//mainmainmain
//sonThread-0son
//sonThread-0son
//sonThread-0son
//看到主线程和子线程交替执行

publicclassTestB...{
publicstaticvoidmain(String[]args)
...{
//MyThread2son=newMyThread2();
//son.start();
newMyThread2().start();//此处应用了匿名对象,和上述注释一样
while(true)
...{
System.out.println(
"main"+Thread.currentThread().getName()+"main");
}

}

}

classMyThread2extendsThread
...{

publicvoidrun()
...{
while(true)
...{
System.out.println(
"son"+Thread.currentThread().getName()+"son");
}

}


}



packageThread;


publicclassTestC...{
publicstaticvoidmain(String[]args)
...{
//MyThread2son=newMyThread2();
//son.start();
newMyThread3().start();//此处应用了匿名对象,和上述注释一样
while(true)
...{
System.out.println(
"main"+Thread.currentThread().getName()+"main");
}

}

}

classMyThread3extendsThread
...{

publicvoidrun()
...{
while(true)
...{
System.out.println(
"son"+Thread.currentThread().getName()+"son");
}

}


}




packageThread;
//本例展示了Join的应用
//tt.join()后,整个程序又变成了一个线程,因为把它加入到了主线程,所以当完成100以后,持续输出son
//tt.join(1000)后,程序持续运行son10秒,然后交替输出main和son
publicclassTestJoin...{
publicstaticvoidmain(String[]args)
...{
Threadtt
=newMyThreadJoin();
tt.start();
intcount=0;
while(true)
...{if(count++==1000)
//try{tt.join();}catch(Exceptione){}
try...{tt.join(10000);}catch(Exceptione)...{}//此处显示了加入10秒后,将交替输出main和son
System.out.println("main"+Thread.currentThread().getName()+"main");
}

}

}

classMyThreadJoinextendsThread
...{
publicvoidrun()
...{
while(true)
...{
System.out.println(
"son");
}

}

}





packageThread;
//该例展示了后台线程的运行情况,当主程序结束后,后台线程会及时终止
//如果不设置daemon,则线程会一直运行,虽然主程序main()已经结束
publicclassTestZ...{
publicstaticvoidmain(String[]args)
...{
Threaddog
=newth();
dog.setDaemon(
true);//dog设置为了后台线程
dog.start();
}

}


classthextendsThread
...{
publicvoidrun()
...{
while(true)
...{
System.out.println(
"ald");
}


}

}




packageThread;

publicclassErrorDemo...{

publicstaticvoidmain(String[]args)
...{
RRrrr
=newRRr();
newThread(rr).start();
newThread(rr).start();
newThread(rr).start();
newThread(rr).start();
}


}







classRRrimplementsRunnable
...{
intcount=100;
publicvoidrun()
...{

while(true)
...{

if(count>0)
...{
try...{Thread.sleep(10);}catch(Exceptione)...{}
System.out.println(Thread.currentThread().getName()
+"sisaling"+count--);
}

}

}

}



packageThread;

publicclassRunnableDemo...{
publicstaticvoidmain(String[]args)
...{
newThread(newR()).start();//注意此处的应用方式Thread的构造函数以R为参数,故调用R.run()
newThread(newR()).start();
newThread(newR()).start();
newThread(newR()).start();
while(true)
...{
System.out.println(
"main");
}

}

}

classRimplementsRunnable
...{
inttickets=100;
publicvoidrun()
...{
while(true)
...{
System.out.println(Thread.currentThread().getName()
+(tickets--));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值