一、基本概念:程序、进程、线程
程序(program):是为完成特定任务、用某种预研编写的一组指令的集合。即指一段静态的代码,静态对象
进程(process):是程序的依次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。
- 如:运行中的QQ,运行中的MP3播放器;
- 程序是静态的,进程是动态的。
线程(Thread):进程可进一步细化为线程,是一个程序内部的一条执行路径。
- 若一个程序可同一时间执行多个线程,就是支持多线程的。
二、进程与多线程
三、创建并启动线程
(1)默认JVM会有一个主线程
(2)模拟多线程读写数据的过程
import java.util.concurrent.TimeUnit;
public class TryConcurrent {
public static void main(String[] args) throws InterruptedException {
new Thread(()->{
readDataFromDataBase();
}, "read thread").start();
new Thread(()->{
writeDataToFile();
}, "read thread").start();
}
/**
* 模拟数据库读取数据的过程
*/
public static void readDataFromDataBase(){
try {
System.out.println("start read data from database");
TimeUnit.SECONDS.sleep(10);
System.out.println("end read data from database");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("read date finish");
}
/**
* 模拟向磁盘写数据的过程
*/
public static void writeDataToFile(){
try {
System.out.println("start write data to file");
TimeUnit.SECONDS.sleep(10);
System.out.println("end write data to file");
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("write date finish");
}
}
代码运行结果: