package test;
/*
* 关于线程Thread的理解:
* 线程(thread)就是进程中的一个执行线索。Java虚拟机允许进程中同时执行多个线程。
* 每个线程都有一个优先级。具有较高优先级的线程先执行。
* 线程是操作系统分配 CPU 时间的基本实体。
* 每一个应用程序至少有一个线程,也可以拥有多个线程。
* 线程是程序中的代码流。
* 多个线程可以同时运行并能共享资源。
* 线程与进程不同,每个进程都需要操作系统为其分配独立的地址空间,而同一进程中的各个线程是在同一块地址空间中工作。
* 在 Java 程序中,一些动态效果(如动画的实现、动态的字幕等)常利用多线程技术来实现。
*/
/*
* 关于线程类中的方法:
* (1) start()方法:启动一个线程。
* (2) run()方法:定义该线程的动作。
* (3) sleep()方法:使线程睡眠一段时间,单位为ms。
* (4) suspend()方法:使线程挂起。
* (5) resume()方法:恢复挂起的线程。
* (6) yield()方法:把线程移到队列的尾部。
* (7) stop()方法:结束线程生命周期并执行清理工作。
* (8) destroy()方法:结束线程生命周期但不做清理工作。
* 其中最常用的是方法start()、run()、sleep()、stop()。
*/
public class Test extends Thread{
//定义构造方法
public Test (String str){
super(str);//超类中的str字符串,赋值给构造函数
}
//定义线程的动作
public void run(){
for(int i=0;i<7;i++){
System.out.print(" "+this.getName());
//这里的this表示当前的这个Thread类,getName()方法返回的是当前的Thread类的名字
/*
try{
sleep(5000);
}catch(InterruptedException e){
System.out.println(e.getMessage());
return;
//一般return有两种作用,其一是返回参数所用的关键字,其二是表示代码执行到此处终止
//当代码执行到某个地方时会出现几种结果,在这几种结果中,当出现不能执行后续代码的
//结果时,需要加一个return,终止后面的代码执行。
//这里的return表示当代码段发生突发错误,被catch语句捕捉到以后,终止代码执行
}
*/
}
System.out.println(" /end");
}
}
首先要定义一个线程类,可以写单个线程的动作,然后再定义一个主程序类,让代码从主程序开始执行。
public class testDemo extends Thread{
//这里可以不写成线程Thread的扩展类,可以直接写成public class testDemo类
//而使用了扩展类的原因是为了在下面是用Thread类中的sleep方法
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t1=new Test("呵");
Test t2=new Test("哈");
Test t3=new Test("嘿");
//这里定义了多个线程类,多个线程可以同时执行,相互之间并没有影响,
t1.start();
t2.start();
try{sleep(100);}
catch(Exception e){e.toString();}
//这里增加一个sleep方法,让代码段执行到线程t2的时候,暂停100毫秒,暂时不执行线程t3
t3.start();
}
}