Java多线程
多线程概述
多线程即在一个进程运行的过程中,可以同时执行多个任务,这些任务被称为多线程。如图:
一个线程的生命周期
创建多线程的三种方式
- 继承Thread类并重写run()方法
创建ThreadDemo类继承Thread类并实现run()方法。
代码示例如下:
/**
* 这个类是通过继承Thread来实现多继承的
*
*/
public class ThreadDemo extends Thread {
/**
* 重写run方法
*/
@Override
public void run() {
System.out.println("ThreadDemo:" + Thread.currentThread().getName());
}
}
- 实现Runnable接口并实现run()方法
创建ThreadRunnable类实现Runnable接口并实现run()方法。
代码示例如下:
/**
* 通过实现Runnable创建多线程
*
*/
public class ThreadRunnable implements Runnable {
/**
* 实现run方法
*/
@Override
public void run() {
System.out.println("ThreadRunnable:" + Thread.currentThread().getName());
}
}
- 测试
代码示例如下:
/**
* 测试类
*
*/
public class ThreadTest {
public static void main(String[] args) {
System.out.println("--- 主线程,开启新线程之前 ---");
ThreadDemo thread = new ThreadDemo();
thread.setName("thread-demo");
thread.start(); // 启动线程
System.out.println("--- 主线程,开启第一个线程 ---");
ThreadRunnable runnable = new ThreadRunnable();
Thread thread1 = new Thread(runnable, "thread-runnable");
thread1.start();
System.out.println("--- 主线程,开启第二个线程 ---");
}
}
运行结果:
--- 主线程,开启新线程之前 ---
--- 主线程,开启第一个线程 ---
ThreadDemo:thread-demo
--- 主线程,开启第二个线程 ---
ThreadRunnable:thread-runnable
从上述结果上看,开启一个新的线程并不影响主线程的运行。
参考链接:http://www.runoob.com/java/java-multithreading.html
源代码链接:https://github.com/myNameIssls/javase-study/tree/master/javase-multithreading