Java多线程学习总结

2009-11-25     作者:        编辑:闫蕊   点击进入论坛
关键词:Java多线程

  一、线程的基本概念

  简单的说:线程就是一个程序里不同的执行路径,在同一个时间点上cpu只会有一个线程在执行,Java里的多线程是通过java.lang.Thread类来实现的,每个线程都拥有自己独立的方法栈空间。

  二、java线程的创建和启动

  第一种

  定义线程类实现Runnable接口:

  Thread myThread = new Thread(target) //target为Runnable接口类型

  Runnable中只有一个方法:

  public void run();用以定义线程运行体

  第二种

  可以定义一个Thread的子类并重写其run方法:

  clas MyThread extends Thread{

  public void run(){}

  }

  线程类必须通过执行Thread的start()方法启动一个新的线程,如果调用run()方法是属于方法的调用,不会启动一个新的线程,推荐使用第一种方式创建线程,使用接口较为灵活。

  三、线程状态装换

  调用线程start()方法时,线程进入就绪状态,Cpu分配时间片,线程进入运行状态,时间片结束,run()方法未执行完,线程进入阻塞状态。

  四、线程控制基本方法

  isAlive() //判断线程是否还“活着”,即线程是否还未终止

  getPriority() //获得线程的优先级数值

  setPriority() //设置线程的优先级指数

  Thread.sleep() //静态方法,将当前线程睡眠指定毫秒数

  join() //调用某线程的该方法,将当前线程与该线程合并,

  //即等待该线程结束,再回复当前线程的运行。

  yield() //让出CPU,当前线程进入就绪状态等待调度

  interrupt() //中断线程

  wait() //当前线程进入对象的wait pool

  notify()/all //唤醒对象的wait pool中的一个/所有等待线程

  五、sleep方法

  Thread的静态方法

  public static void sleep(long millis)throws InterruptedException

  必须对异常进行捕捉

  Thread.currentThread(); //拿到当前线程

寻找产品:
姓       名: 电   话:
公       司: E-mail:
描       述: