Thread类
1.定义类继承Thread
2.重写run()方法
3.在main()方法中调用starat()方法启动线程,会自动调用run()方法
package com.company.bean11;
public class MyThread1 extends Thread{
@Override
public void run() {
for(int i=0;i<1000;i++){
System.out.println("打游戏---"+i);
}
}
}
package com.company.bean11;
public class Mythread2 extends Thread{
@Override
public void run() {
for(int i=0;i<1000;i++){
System.out.println("听歌---"+i);
}
}
}
package com.company.bean11;
public class ThreadTest {
public static void main(String[] args) {
MyThread1 t1=new MyThread1();
Mythread2 t2=new Mythread2();
t1.start();
t2.start();
}
}
Runnable接口
1.定义类继承Thread
2.重写run()方法
3.在main()方法中实例化Runnable接口的实例化对象
4.定义两个线程Thread类的对象把Runnable接口的实现对象传入构造方法中
5.线程类对象调用strat()方法启动线程自动执行Runnable接口的实现类中的run()方法
package com.company.bean11;
public class MyRunnable1 extends Thread implements Runnable {
@Override
public void run() {
for(int i=0;i<100;i++){
System.out.println("听歌---"+i);
}
}
}
package com.company.bean11;
public class MyRunnable2 extends Thread implements Runnable{
@Override
public void run() {
for(int i=0;i<100;i++){
System.out.println("打游戏---"+i);
}
}
}
package com.company.bean11;
public class ThreadTest1 {
public static void main(String[] args) {
MyRunnable1 m1=new MyRunnable1();
MyRunnable2 m2=new MyRunnable2();
Thread t1=new Thread(m1);
Thread t2=new Thread(m2);
t1.start();
t2.start();
}
}
多线程
一个进程至少有一个线程,也可以有多个线程被称之为多线程
进程指的是应用程序,每一个都有一个内存空间,线程是执行单元
Thread类这种显示机制导致自定义的类没办法在继承别的类
Runnable接口的机制可以让自定义类既可以继承别的类,也可以实现多线程。