/*
* 1,尝试定义一个继承Thread类的类,并覆盖run()方法,
* 在run()方法中每隔100毫秒打印一句话。*/
package Stream;
//方法一 继承Thread 实现多线程
public class TestX extends Thread {
public void run () {
xiancheng();}
public void xiancheng()
{
for (int i = 0; i < 10; i++) {
System.out.println(this+"打印一句话"+i);
try {
Thread.sleep(100);//每100毫秒输出一次
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
} }
}
package Stream;
//方法二 实现Runnable 接口
public class TestXX implements Runnable { @Override
public void run() {
duoxiancheng();
}
public void duoxiancheng() {
for (int i = 0; i < 10; i++) {
System.out.println("打印一句话"+i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
} }
package Stream; public class TestThread { public static void main(String[] args) {
TestX i=new TestX();
i.start(); TestX ii=new TestX();
ii.start(); TestXX s=new TestXX();
Thread hh= new Thread(s);
hh.start(); TestXX ss=new TestXX();
Thread hhs= new Thread(ss);
hhs.start(); } }
上述显示三图 分别为 图一 两种方式一起输出 太长没有全截取 图二 为通过集成Thread实现多线程 图三为通过应用Runnable接口实现多线程
多线程 笔记
①线程 进程里的执行流程
②实现方式 1,继承Thread 重写一个run()方法
使用start()方法启动多线程 同一时间只能
启动一个线程
2,实现Runnable接口 重写run()方法
调用Thread(Runnable)
调用Thread对象的start
③生命周期 出生状态
就绪状态
运行状态
等待状态
休眠状态
阻塞状态
死亡状态