文章目录
1 并发和并行
1.1 并发
1.2 并行
2 程序、进程、线程
2.1 程序
2.2 进程
2.3 线程
2.3.1 守护线程
2.4 Java多线程
2.4.1 多线程的创建方式
2.4.1.1 继承Thread类,重写run方法
public class MyThread extends Thread {
@Override
public void run() {
System.out.println("MyThread...run...");
}
public static void main(String[] args) {
// 创建MyThread对象
MyThread t1 = new MyThread() ;
MyThread t2 = new MyThread() ;
// 调用start方法启动线程
t1.start();
t2.start();
}
}
2.4.1.2 实现runnable接口,重写run方法
public class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println("MyRunnable...run...");
}
public static void main(String[] args) {
// 创建MyRunnable对象
MyRunnable mr = new MyRunnable() ;
// 创建Thread对象
Thread t1 = new Thread(mr) ;
Thread t2 = new Thread(mr) ;
// 调用start方法启动线程
t1.start();
t2.start();
}
}
2.4.1.3 实现callable接口,重写call方法
2.4.1 线程的生命周期
状态 | 解释 |
---|---|
NEW | 创建线程 ,未启动即还没有调用start方法 |
runable | 可运行状态 , 当调用start方法,线程处于可运行状态,等待CPU的调度 |
blocked | 阻塞状态 ,当一个线程试图获取一个对象锁,但是这个对象被其他线程持有,则该线程进入阻塞状态,只有当该线程持有锁是,该线程才是可运行状态 |
waiting | 等待状态 , |