- 每个进程都是一个独立运行的程序,持有资源(共享内存和文件)和线程。
- 线程是系统中最小的执行单元,同一进程中有多个线程,线程共享进程的资源。
- 实现线程的方式有两种:
继承java.lang.Thread,并重写它的run()方法,将线程的执行主体放入其中。
实现java.lang.Runnable接口,实现它的run()方法,并将线程的执行主体放入其中。
推荐使用实现Runnable接口这种方式。 - 如何启动线程 :
//继承Thread类的启动方式
public class ThreadStartTest {
public static void main(String[] args) {
// 创建一个线程实例
ThreadTest tt = new ThreadTest();
// 启动线程
tt.start();
}
}
//实现Runnable接口的启动方式:
public class RunnableStartTest {
public static void main(String[] args) {
// 创建一个线程实例
Thread t = new Thread(new RunnableTest());
// 启动线程
t.start();
}
}
- 线程的状态:
在Java 1.4及以下的版本中,每个线程都具有新建、可运行、阻塞、死亡四种状态,但是在Java 5.0及以上版本中,线程的状态被扩充为新建、可运行、阻塞、等待、定时等待、死亡六种。线程的状态完全包含了一个线程从新建到运行,最后到结束的整个生命周期。
4.线程方法:
5.volatile:保证线程可以正确地读取其它线程写入的值
6.简易多线程写法
new Thread(()->{
//业务实现
}).start();
7.控制多线程按顺序执行
t.join() //该方法会使所有线程都暂停并等待t的线程执行完毕后再执行