@开启线程第一种方式–声明为Thread的子类
前言
一个进程可以有多个进程完成,每个进程都有一个默认的进程main
每个进程都是由CPU进程调度的,每个进程之间每次都是进行抢占的,所以进程每次在进行时都具有随机性
一、声明为Thread的子类方法开启线程
Thread是一个实现了Runnable接口的类,其中包含一个run方法
继承Thread的方法开启进程的步骤:
1.类继承Thread类,成为Thread类的子类
2.重写父类Thread实现Runnable的run方法(开启的进程所要实现的东西要写在run方法里)
3.创建类的测试类,创建对象,去开启进程
二、代码实现
新建两个类去实现两个子线程所实现的要求,利用一个测试类Test开启线程
##1.第一个类
/**
* 声明为Thread的子类开启进程
* @author 脱发的小白
*/
public class MyThread1 extends Thread {
public MyThread1() {
super();
// TODO Auto-generated constructor stub
}
public MyThread1(String name) {
super(name);
// TODO Auto-generated constructor stub
}
// 重写run方法,子线程要干的事要放在run方法里
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
String name1 = Thread.currentThread().getName();// 获取进程的名字
for (int i = 0; i < 1000; i++) {
System.out.println(name1 + "在工作哦" + i);
}
}
}
##2.第二个类
public class MyThread2 extends Thread {
public MyThread2() {
super();
// TODO Auto-generated constructor stub
}
public MyThread2(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
String name2 = Thread.currentThread().getName();
for (int i = 0; i < 1000; i++) {
System.out.println(name2 + "在工作哦" + i);
}
}
}
##2.测试类的代码
/**
* 创建对象开启进程
* @author 脱发的小白
*/
public class Test {
public static void main(String[] args) {
MyThread1 myThread1 = new MyThread1();//创建类的对象
myThread1.start();//通过类的对象去调用父类的Thread的start的方法去开启进程
//myThread1.run();是对象去调用类的run方法,并不是开启进程
MyThread2 myThread2 = new MyThread2();
myThread2.start();
}
}
3.运行结果展示
总结
1.首先要继承Thread类
2.要重写父类的run方法
3.进程要实现的代码要写在类的run方法里
4.测试类的对象开启线程要使用start方法
5.这种方式开启线程类不能再继承起它的类,太过单一