dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>java基础>文章内容
java多线程编程
来源: 作者:
 import java.io.*;
//多线程编程
public class Xian{
public static void main(String args[]){
System.out.println("我是主线程!");

//下面创建线程实例thread1
ThreadUseExtends thread1=new ThreadUseExtends();

//创建thread2时以实现了Runnable接口的ThreadUseRunnable类实例为参数
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("回到主线程,请稍等,刚才主线程挂起可能还没醒过来!");
  try{
    Thread.sleep(1000);//挂起5秒
  }catch (InterruptedException e){
    return;
  }
//如果该run()方法顺序执行完了,线程将自动结束,而不会被主线程杀掉
//但如果休眠时间过长,则线程还存活,可能被stop()杀掉
}
}
//该程序可做的修改如改休眠时间或优先级setPriority()

上一篇:JFreeChart在JSP中的应用实例   下一篇:深入 JAVA对象的复制与比较
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·JUnit单元测试(2)
·JUnit单元测试(1)
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·对于JAVA基础测试中常见的异常问
·JAVA程序员面试33问,你能回答多
·Java Reflection (JAVA反射)详解
·JAVA中配置环境变量设置方法大全
·讲述java语言中内部类的研究
·详细解析Java中抽象类和接口的区
·Java开发中的事件驱动模型实例详
  相关文章
·深入 JAVA对象的复制与比较
·Vector & ArrayList 哪一个更好
·java学习----理解面向对象的程序
·Java语言的克隆与深层次克隆技术
·Java语言的参数传递和处理方法 -
·Java/J2EE中文问题终极解决之道
·怎么向一个命令行Java程序传递参
·Java开发者需坚守的十大基本准则
·讨论 Java 技术新手入门
·Java输入输出(Java IO)处理概
·JAVA如何调用DOS命令
·如何使用Static的变量和方法
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763