进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程;有它自身的产生、存在和消亡的过程。
线程由进程创建,一个进程可以有多个线程。
并发:单核cpu实现的多任务就是并发,多个任务交替执行,造成一种“貌似同时”的错觉。
并行:多个任务同时执行,多核cpu可以实现并行。
1、线程的基本使用创建线程:
1、继承Thread类,重写run方法
Cat实现了Thread类,我们可以把Cat当做线程来使用。
public class Thread01 {
public static void main(String[] args) {
Dog dog = new Dog();
dog.start();//启动线程,main线程不会阻塞,还会继续执行
}
}
//Dog继承了线程,相当于是一个线程
class Dog extends Thread{
int times = 0;
@Override
public void run() {
while (true) {
System.out.println("汪汪,我是小狗" + (++times));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(times == 10) break;
}
}
}
机制:
运行程序,启动进程;进入main方法,创建main线程(主线程);new Cat()并且start又启动一个线程Thread-0;
当主线程结束的时候,如果其他线程没有结束,则进程依然生存,只有所有的线程结束,进程才结束。
2、实现Runnable接口,重写run方法



