线程和进程的概念
线程是需要依赖与进程的,进程开启后会执行很多的任务,每个任务,我们叫做线程。说白了就是,一个应用要想同时完成比如说,边自动保存,边打字输入数据,这种时候每操作的一种方式,都可以说是一种线程,而多线程的意义就是,让这些事情,可以在人不能察觉的情况下,基本同时进行,提高了CPU的利用率
进程:正在运行的应用程程序;我的电脑上可以有多个进程在某个时间点上CPU(单核)只能执行一个程序
线程具有随机性,他会取抢占CPU的执行权。谁抢到就在某个时刻执行谁,在某一刻只能执行一个线程
并行与并发
并行是逻辑的同时进行,也就是可以同时进行
并发是物理上的同时进行,它并不是同时执行,只不过是间隔时间较短,人察觉不到
其中并行在多处理系统中存在,而并发可以在单处理系统和多处理系统中存在
好了,概念讲完了,我们看一下怎么创建出一个线程来
创建线程
- 第一种创建方法
1.我们定义一个类,继承Thread这个类
2.重写run方法
3.创建我们写的类的对象
4.开启线程,开启不是调用run方法,有个独特的开启方式就是调用start()方法开启,由线程去调用run方法去执行run方法里面的代码 直接调用run方法那就是使用了一个对象,并且调用了这个对象里的方法,并没有开启线程
例
自定义类:
输出结果
- 第二种创建方法
1.创建一个类,并让它实现Runable接口,重写该接口中的run方法
2.创建Thread类的对象,将Runnable接口的子类对象传递过来
3.调用start()方法开启线程
例:
自定义类
运行结果
- 第三种创建方式
1.定义一个类去实现Callable接口
2.重写call方法
3.创建该类对象
4.然后把该类的对象传到新创建的FuntureTASK上去
5.再把它的对象加到Thread上去
6.调用start()方法
例:
运行结果: