java一个多线程的经典例子

java一个多线程的经典例子

文章分类:Java编程 关键字: java一个多线程的经典例子

import java.io.*;

//多线程编程

public class MultiThread

{

public static void main(String args[])

{

System.out.println("我是主线程!");

//下面创建线程实例thread1

ThreadUseExtends thread1=new ThreadUseExtends();

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

Thread thread2=new Thread(new ThreadUseRunnable(),"SecondThread");

thread1.start();//启动线程thread1使之处于就绪状态

//thread1.setPriority(6);//设置thread1的优先级为6

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

//优先级范围1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY

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

System.out.println("主线程将挂起7秒!");

try

{

Thread.sleep(7000);//主线程挂起7秒

}

catch (InterruptedException e)

{

return;

}

System.out.println("又回到了主线程!");

if(thread1.isAlive())

{

thread1.stop();//如果thread1还存在则杀掉他

System.out.println("thread1休眠过长,主线程杀掉了thread1!");

}

else

System.out.println("主线程没发现thread1,thread1已醒顺序执行结束了!");

thread2.start();//启动thread2

System.out.println("主线程又将挂起7秒!");

try

{

Thread.sleep(7000);//主线程挂起7秒

}

catch (InterruptedException e)

{

return;

}

System.out.println("又回到了主线程!");

if(thread2.isAlive())

{

thread2.stop();//如果thread2还存在则杀掉他

System.out.println("thread2休眠过长,主线程杀掉了thread2!");

}

else

System.out.println("主线程没发现thread2,thread2已醒顺序执行结束了!");

System.out.println("程序结束按任意键继续!");

try

{

System.in.read();

}

catch (IOException e)

{

System.out.println(e.toString());

}

}//main

}//MultiThread

class ThreadUseExtends extends Thread

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

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

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

{

ThreadUseExtends(){}//构造函数

public void run()

{

System.out.println("我是Thread子类的线程实例!");

System.out.println("我将挂起10秒!");

System.out.println("回到主线程,请稍等,刚才主线程挂起可能还没醒过来!");

try

{

sleep(10000);//挂起5秒

}

catch (InterruptedException e)

{

return;

}

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

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

}

}

class ThreadUseRunnable implements Runnable

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

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

{

//Thread thread2=new Thread(this);

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

ThreadUseRunnable(){}//构造函数

public void run()

{

System.out.println("我是Thread类的线程实例并以实现了Runnable接口的类为参数!");

System.out.println("我将挂起1秒!");

System.out.println("回到主线程,请稍等 jn0-120 e20-040 ,刚才主线程挂起可能还没醒过来!");

try

{

Thread.sleep(1000);//挂起5秒

}

catch (InterruptedException e)

{

return;

}

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

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

}

}

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

java一个多线程的经典例子

文章分类:Java编程 关键字: java一个多线程的经典例子

import java.io.*;

//多线程编程

public class MultiThread

{

public static void main(String args[])

{

System.out.println("我是主线程!");

//下面创建线程实例thread1

ThreadUseExtends thread1=new ThreadUseExtends();

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

Thread thread2=new Thread(new ThreadUseRunnable(),"SecondThread");

thread1.start();//启动线程thread1使之处于就绪状态

//thread1.setPriority(6);//设置thread1的优先级为6

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

//优先级范围1到10,MIN_PRIORITY,MAX_PRIORITY,NORM_PAIORITY

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

System.out.println("主线程将挂起7秒!");

try

{

Thread.sleep(7000);//主线程挂起7秒

}

catch (InterruptedException e)

{

return;

}

System.out.println("又回到了主线程!");

if(thread1.isAlive())

{

thread1.stop();//如果thread1还存在则杀掉他

System.out.println("thread1休眠过长,主线程杀掉了thread1!");

}

else

System.out.println("主线程没发现thread1,thread1已醒顺序执行结束了!");

thread2.start();//启动thread2

System.out.println("主线程又将挂起7秒!");

try

{

Thread.sleep(7000);//主线程挂起7秒

}

catch (InterruptedException e)

{

return;

}

System.out.println("又回到了主线程!");

if(thread2.isAlive())

{

thread2.stop();//如果thread2还存在则杀掉他

System.out.println("thread2休眠过长,主线程杀掉了thread2!");

}

else

System.out.println("主线程没发现thread2,thread2已醒顺序执行结束了!");

System.out.println("程序结束按任意键继续!");

try

{

System.in.read();

}

catch (IOException e)

{

System.out.println(e.toString());

}

}//main

}//MultiThread

class ThreadUseExtends extends Thread

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

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

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

{

ThreadUseExtends(){}//构造函数

public void run()

{

System.out.println("我是Thread子类的线程实例!");

System.out.println("我将挂起10秒!");

System.out.println("回到主线程,请稍等,刚才主线程挂起可能还没醒过来!");

try

{

sleep(10000);//挂起5秒

}

catch (InterruptedException e)

{

return;

}

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

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

}

}

class ThreadUseRunnable implements Runnable

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

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

{

//Thread thread2=new Thread(this);

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

ThreadUseRunnable(){}//构造函数

public void run()

{

System.out.println("我是Thread类的线程实例并以实现了Runnable接口的类为参数!");

System.out.println("我将挂起1秒!");

System.out.println("回到主线程,请稍等 jn0-120 e20-040 ,刚才主线程挂起可能还没醒过来!");

try

{

Thread.sleep(1000);//挂起5秒

}

catch (InterruptedException e)

{

return;

}

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

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

}

}

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


相关文章

  • Java多线程编程经典案例 1
  • Java 多线程编程经典案例诠释 2007-05-17 11:21:59 标签:java 多线程 [推送到技术圈] 版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. Java 多线程编程总结 一.认识多任务.多进程.单线程. ...查看


  • Java多线程编程经典案例
  • 版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. Java 多线程编程总结 一.认识多任务.多进程.单线程.多线程 要认识多线程就要从操作系统的原理说起. 以前古老的DOS 操作系统(V 6.22)是单任务的,还没有线程的概 ...查看


  • java生产者消费者问题
  • java 生产者消费者问题 引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况: 生产者消费者图 存储空间已 ...查看


  • 别人经验--关于Object类理解(好)
  • Java  杂谈(三) 这已经笔者写的第三篇Java杂记了,庆幸前两篇一直得到论坛朋友们的支持鼓励,还望大家继续指正不足之处.笔者也一直渴望通过这样方式清醒的自审,来寻找自己技术上的不足之处,希望和共同爱好Java的同仁们一起提高. 前两次 ...查看


  • 网易Java笔试题
  • 2015网易Java开发工程师(技术架构)笔试题 1. 程序和进程的本质区别是? A.在外存和内存存储 B.非顺序和顺序执行机器指令 C.独占使用和分时使用计算机资源 D.静态和动态特征 2. 假设某算法的时间复杂度符合递推关系式T(n)= ...查看


  • java中的回调机制(自己的一点理解)
  • ',1)"> 作为新手,不得不说学习是个艰难的过程.这几天一直在看关于回调机制方面的问题,经过几天的摸索,开始对android中的回调机制有了一点理解,下面做一个记录,有的是从别处借鉴过来的,有的是自己的一点理解,如有错误或 ...查看


  • 运筹学课程论文范文
  • 滨江学院 运筹学课程论文 题 目 棒打猪头游戏设计 院 系专 业学生姓名 倪 健 学 号指导教师职 称 讲 师 二O一一年六月二日 目 录 摘要················································ ...查看


  • android常见面试题
  • Android面试题班得瑞 (补充) 1.onCreate():当Activity被创建的时候调用(第一次).操作:设置布局文件,初始化视图,绑定数据文件等. 2.onStart():当Activity能被我们看到的时候. 3.onResu ...查看


  • 面向对象程序设计的教学改革
  • 面向对象技术现在已经成为计算机科学与技术中的一个重要领域,并渗透到计算机学科的很多方向.面向对象的思想方法属于计算机专业学生必须学习掌握的核心课程内容. 由于技术发展日新月异,计算机专业教学特别是教材编写已经相对滞后,面向对象程序设计课程亦 ...查看


热门内容