1.线程简介:
说到线程就要说下进程:一个进程至少有一个线程:如main()就是一个线程,后台线程GC等.
进程在执行的过程中有独立的内存单元,而多个线程共享内存,从而极大的提高了程序的效率.
线程不能独立运行,必须依存于应用程序,有应用程序提供多个程序执行控制.
2.线程的状态:
线程和进程一样分为五个阶段: New(创建)、Runnable(就绪)、Block(阻塞)、Running(运行)以及Dead(终止)。
3.线程的定义
定义一个线程有两种方法
1)继承java.lang.Thread类 (不建议使用此方法,因为类继承了Thread类后不能继承其他类,扩展性太差)
public class ThreadTest1 extends Thread{
/**
*重写(Override)run()方法;
*/
public void run() {
System.out.println("hello");
}
}
线程继承Thread类,创建方式为:
ThreadTest t1=new ThreadTest();
t1.start();
2)实现java.lang.Runnable接口
public class ThreadTest2 implements Runnable{
public void run(){
System.out.println("hello");
}
}
线程实现Runnable接口,创建方式为:
ThreadTest2 t2=new ThreadTest2();
Thread t=new Thread(t2);
t.start();
附: 使用内部类创建的一个线程,显示每秒时间
package mypackage;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TheradTest01 {
public static void main(String[] args) {
Thread t1=new Thread(){
public void run(){
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
String d=sdf.format(date);
System.out.println(d);
}
}
};
t1.start();
System.out.println("开始");
}
}