什么是进程?
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程。同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
什么是线程?
一个线程就是一个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码。
为什么要有多线程?
当进程在频繁的创建与销毁时,开销是比较大的,体现在:资源的申请和释放上。我们为了降低这种开销,就有了多线程。
目前,并发编程成为 “刚需”。
虽然多进程也可以进行并发编程,但是线程比进程更轻量。
- 创建线程比创建进程更快.
- 销毁线程比销毁进程更快.
- 调度线程比调度进程更快.
进程与线程的区别
1、一个进程至少包含一个线程,即为主线程。
2、每个线程也是一个独立的执行流,可以执行一些代码,并且单独的参与到cpu的调度中。
3、进程与进程之间是独立的,但进程中的线程要是有一个抛出异常,可能会影响其他线程,从而导致整个进程都崩溃。
4、每个进程都有自己的资源,但进程中的线程是共享这一个进程的资源。
⭐进程是资源分配的基本单位。
⭐线程是调度执行的基本单位。
5、同一个进程,线程可能会干扰,引起线程安全问题。
6、线程不是越多越好,如果线程超出范围,调度执行开销就可能会很明显。
第一个多线程代码
1、首先要创建一个类,来继承(extends)Thread。
2、要重写run方法。
3、创建Test,进行测试。
这里我们不需要 .run()方法,直接 .start()开始就可以,这就是一个多线程代码。