求一个Java多线程程序代码的注释

publicclassThreadSleep{publicstaticvoidmain(String[]args){SubThreadst=newSubThread("S... public class ThreadSleep
{
public static void main(String[] args)
{
SubThread st=new SubThread("SubThread");
st.start();}}
class SubThread extends Thread{
SubThread(){}
SubThread(String Name)
{super(Name);}
public void run(){
for(int count=1,row=1;row<10;row++,count++){
for(int i=0;i<count;i++)
{System.out.print("*");}
try{
Thread.sleep(100);
System.out.print("\t wait ......");
}
catch(InterruptedException e)
{e.printStackTrace();
}
System.out.println();
}}}
展开
 我来答
米多多MiDD
2014-10-21 · TA获得超过1077个赞
知道小有建树答主
回答量:562
采纳率:66%
帮助的人:226万
展开全部
多线程实现方式有两种:继承Thread类和实现Runnable接口,二者区别及示例如下:
1.实现方式不同及可扩展性

Thread 采用单继承的方式,继承Thread的类不可再继承其它类。
Runnable接口采用实现接口的方式,可再继承其它类。

2.方法执行体中 run( ),调用getName方法不同。

Thread可直接通过成员方法getName()获取当前运行时的线程名称。
Runnable中 必须通过 Thread.currentThread().getName()方法得到。

3.启动线程为就绪状态的方法不同。

Thread类 通过 new ThreadTest().start()的方法可以同时启动多个线程 其线程名默认为 Thread-0/1/2。
Runnable 需要通过 RunableTest rt= new RunableTest();
new Thread(rt,"线程0" ).start();
new Thread(rt,"线程1" ).start();
4.是否共享内存资源。

Thread 多个线程之间不共享内存资源 各自独立
Runnable 多个线程共享同一个内存资源。

方式一:
public class ThreadTest extends Thread {

private int i ;

public void run(){

for(;i <100;i++){

System. out.println("run:" +getName()+" "+ i);

}
}
public static void main(String[] args) {

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

System.out.println("main:" +Thread.currentThread ().getName()+" " +i);
if(i==20){

new ThreadTest().start();
new ThreadTest().start();

}
}
}
}
方式二
public class RunableTest implements Runnable{
private int i ;
@Override

public void run(){

for(;i <100;i++){

String name=Thread. currentThread().getName();
System. out.println("run:" +name+" "+ i);

}
}
public static void main(String[] args) throws InterruptedException {

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

System. out.println(Thread.currentThread().getName()+ " "+i);

if(i==20){

RunableTest rt= new RunableTest();

new Thread(rt,"线程0" ).start();

new Thread(rt,"线程1" ).start();

}

}

}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f491bf7
2014-10-21
知道答主
回答量:1
采纳率:0%
帮助的人:1307
展开全部
public class ThreadSleep
{

public static void main(String[] args)
{
SubThread st=new SubThread("SubThread");
st.start();}}
//声明一个子进程的类
class SubThread extends Thread{
//默认构造函数
SubThread(){}
//带参数的构造函数
SubThread(String Name)
{super(Name);}
//重写run方法,调用start的时候实际执行的内容
public void run(){
//循环十次
for(int count=1,row=1;row<10;row++,count++){
//输出count个*
for(int i=0;i<count;i++)
{System.out.print("*");}
try{
//当前线程休眠,可能其他线程进来
Thread.sleep(100);
System.out.print("\t wait ......");
}
catch(InterruptedException e)
{e.printStackTrace();
}
System.out.println();
}}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式