1、什么是多线程
程序启动运行main时候,java虚拟机启动一个进程,主线程main在main()调用时候被创建。随着调用mt的对象的start方法,另外一个新的线程也启动了,这样,整个应用就在多线程下运行。
2、Thread类
构造方法:
- public Thread():分配一个新的线程对象。
- public Thread(String name):分配一个指定名字的新的线程对象。
- public Thread(Runnable target):分配一个带有指定目标新的线程对象
- public Thread(Runnable target,String name):分配一个带有指定目标新的线程对象并指定名字。
常用方法 :
- public string getName():获取当前线程名称。
- public void start():导致此线程开始执行;Java虚拟机调用此线程的run方法
- public void run():此线程要执行的任务在此处定义代码。
- public static void sleep(long millis):使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)
- public static Thread currentThread() :返回对当前正在执行的线程对象的引用。
如何创建多线程呢?
第一个方法
先创建两个类继承Thread线程对象,然后启动他们
创建MyThread1线程
public class MyThread1 extends Thread {
public void run(){
for (int i=0;i<100;i++){
System.out.println("执行听歌..."+i);
}
}
}
创建MyThread2线程
public class MyThread2 extends Thread {
public void run(){
for (int i=0;i<100;i++){
System.out.println("执行打游戏..."+i);
}
}
}
然后测试
public class ThreadTest01 {
public static void main(String[] args) {
MyThread1 t1=new MyThread1();
MyThread2 t2=new MyThread2();
//线程类不需要显式的调用run方法,只需要调用start()方法,自动就会执行run方法
t1.start();
t2.start();
}
}
结果如下
两个线程交替执行
方法二Runnable接口实现类实现多线程
1、定义类实现Runnable接口;
2、重写run()方法;
3、main方法中实例化Runnable接口的实现类对象;
4、定义两个线程Thread类的对象,把Runnable接口的实现对象传入构造方法中;
5、线程类对象调用start方法,启动线程,自动执行。
创建MyRunnable1类实现Runnable接口
public class MyRunnable1 implements Runnable {
public void run(){
for (int i=0;i<100;i++){
System.out.println("Runnable1执行听歌..."+i);
}
}
}
创建MyRunnable2类是实现Runnable几口
public class MyRunnable2 implements Runnable {
public void run(){
for (int i=0;i<100;i++){
System.out.println("Runnable2执行游戏..."+i);
}
}
}
然后测试
public class ThreadTest02 {
public static void main(String[] args) {
MyRunnable1 r1=new MyRunnable1();
MyRunnable2 r2=new MyRunnable2();
//Runnable接口的实现多线程,必须借助Thread类才能实现
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
t1.start();
t2.start();
}
}
结果如下:
完成线程交替
完成多线程交替执行必须使用Thread类完成,构造Thread方法中可以传入一个Runnable的对象来完成多线程交替。