了解多线程首先要了解几种概念。
并行跟并发
并行: 指两个或多个事件在同一时刻发生
并发: 指两个或多个事件在同一时间段内发生(交替执行)
注意 : 时间段是非常短的
进程与线程
进程: 可以将进程看作是系统正在运行的应用程序,但是一个进程不止线程
线程: 是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
线程的初体验
创建线程的方式有三种 :
首先记住 ,有三种方式,但是我们推荐使用实现Runnable接口这种方式。
因为java有单继承的这个局限性。
- 自定义类继承Thread类,然后重写run方法,创建线程对象,调用start()方法。
打印结果
- 实现Runnable接口,重写run 方法,执行线程需要丢入runnable实现类,调用start()方法看示例
定义main线程
打印结果
3.实现callable接口方式(建议了解就可以)
运行结果
线程的调度
首先要知道java中我们的线程是抢占式的。比如有线程A 线程B 谁抢到就是谁的。看实例代码
定义一个Thread 去继承我们的Thread类
创建一个main方法,去new一个MyThread
输出结果如下, 由图可以看出我们的多线程时抢占式的.谁先抢到资源谁就先执行.