java

位置:IT落伍者 >> java >> 浏览文章

JAVA多线程学习初步经典实例


发布日期:2020年06月17日
 
JAVA多线程学习初步经典实例

import javaio*;

//多线程编程

public class MultiThread

{

public static void main(String args[])

{

Systemoutprintln(我是主线程!);

//下面创建线程实例thread

ThreadUseExtends thread=new ThreadUseExtends();

//创建thread时以实现了Runnable接口的THhreadUseRunnable类实例为参数

Thread thread=new Thread(new ThreadUseRunnable()SecondThread);

threadstart();//启动线程thread使之处于就绪状态

//threadsetPriority();//设置thread的优先级为

//优先级将决定cpu空出时处于就绪状态的线程谁先占领cpu开始运行

//优先级范围MIN_PRIORITYMAX_PRIORITYNORM_PAIORITY

//新线程继承创建她的父线程优先级父线程通常有普通优先级即NORM_PRIORITY

Systemoutprintln(主线程将挂起秒!);

try

{

Threadsleep();//主线程挂起

}

catch (InterruptedException e)

{

return;

}

Systemoutprintln(又回到了主线程!);

if(threadisAlive())

{

threadstop();//如果thread还存在则杀掉他

Systemoutprintln(thread休眠过长主线程杀掉了thread!);

}

else

Systemoutprintln(主线程没发现threadthread已醒顺序执行结束了!);

threadstart();//启动thread

Systemoutprintln(主线程又将挂起秒!);

try

{

Threadsleep();//主线程挂起

}

catch (InterruptedException e)

{

return;

}

Systemoutprintln(又回到了主线程!);

if(threadisAlive())

{

threadstop();//如果thread还存在则杀掉他

Systemoutprintln(thread休眠过长主线程杀掉了thread!);

}

else

Systemoutprintln(主线程没发现threadthread已醒顺序执行结束了!);

Systemoutprintln(程序结束按任意键继续!);

try

{

Systeminread();

}

catch (IOException e)

{

Systemoutprintln(etoString());

}

}//main

}//MultiThread

class ThreadUseExtends extends Thread

//通过继承Thread类并实现它的抽象方法run()

//适当时候创建这一Thread子类的实例来实现多线程机制

//一个线程启动后(也即进入就绪状态)一旦获得CPU将自动调用它的run()方法

{

ThreadUseExtends(){}//构造函数

public void run()

{

Systemoutprintln(我是Thread子类的线程实例!);

Systemoutprintln(我将挂起秒!);

Systemoutprintln(回到主线程请稍等刚才主线程挂起可能还没醒过来!);

try

{

sleep();//挂起

}

catch (InterruptedException e)

{

return;

}

//如果该run()方法顺序执行完了线程将自动结束而不会被主线程杀掉

//但如果休眠时间过长则线程还存活可能被stop()杀掉

}

}

class ThreadUseRunnable implements Runnable

//通过实现Runnable接口中的run()方法再以这个实现了run()方法的类

//为参数创建Thread的线程实例

{

//Thread thread=new Thread(this);

//以这个实现了Runnable接口中run()方法的类为参数创建Thread类的线程实例

ThreadUseRunnable(){}//构造函数

public void run()

{

Systemoutprintln(我是Thread类的线程实例并以实现了Runnable接口的类为参数!);

Systemoutprintln(我将挂起秒!);

Systemoutprintln(回到主线程请稍等刚才主线程挂起可能还没醒过来!);

try

{

Threadsleep();//挂起

}

catch (InterruptedException e)

{

return;

}

//如果该run()方法顺序执行完了线程将自动结束而不会被主线程杀掉

//但如果休眠时间过长则线程还存活可能被stop()杀掉

}

}

//该程序可做的修改如改休眠时间或优先级setPriority()

评论

通过继承Thread类和实现Runnable接口的两种方式来实现多线程编程!

               

上一篇:Java自带的Future多线程模式

下一篇:Java中的模式--单态