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();  //拿到当前线程

【编辑推荐】

  1. 20个开发人员非常有用的Java功能代码
  2. 走进Java 7中的模块系统
  3. JavaFX 1.2 已经发布 主要新功能一览
  4. 2009年十大Java技术解决方案
  5. 2008最值得学习的五种JAVA技术
THE END