- 线程的概念
- 常识:我们知道CPU是计算机中央处理器,用来处理任务的,那么他是如何处理任务的,在实际使用过程中,听说过多线程软件,比如迅雷,快播,等下载速度比较快
- 什么是线程
任务管理器可以有多个进程,每个进程运行的都是可执行程序,一个可执行程序就是一个软件,可执行程序的本 质就是在计算机当中运行的一块代码
进程:可以看成是在计算机当中运行的一块代码
线程:可以看成是在计算机当中运行的一小块代码
- 线程与进程的关系
1)一个进程中可以有多个线程,至少得有一个线程;
2)上面说一个进程可以狭隘的看成是一大段代码,那其实线程也是一段代码
3)线程是进程中的最小单位;
4)也可以把线程看成是一个轻量级的进程
注意常识 : 计算机安装一个软件,软件是由代码构成,当启动一个软件之后,代码被放入内存中,为什么会放入到内存中,因为内存的读写速度比较快,这时候CPU就开始处理内存当中的任务,也就是当前软件程序[ 代码 ]运行起来了。
- 多线程软件下载为什么比较快
1)假设上面软件都是运行在同一台电脑上面,两款软件运行,肯定是由一个CPU在处理该任务
2)CPU处理任务最小单位是线程,CPU是通过资源分配的方式,在多个线程之间,以时间片(时间片:很微小的时间单位)为单位,高速切换内存中要执行的线程任务。
3)在同一个时间片上,只能处理一个线程
4)在CPU的眼中,只看到内存中有很多线程,大家都是平等的,获取到CPU处理的机会是均等的,CPU会平均分配资源给每一个线程
5)假设每个线程执行一分钟,快播软件占用CPU时间为三分钟,迅雷占用CPU处理任务的时间为1分钟,自然快播处理的任务会更多,下载的内容更多
线程的作用
1.线程的作用:看下面两种理解方式:
①可以将代码中(软件)的某些独立的功能包装起来,单独作为任务交给CPU处理!
②将需做的某个功能封装成一个线程体,该线程可以独立的获得CPU分配的资源
从而实现多功能同时运行。
1.开发一个游戏(LOL),实现的功能一边玩游戏,一边播放背景音乐
实现流程分析
1.游戏的本质也是软件:该软件包含两项功能
①玩游戏,暂时使用一个打印语句来代替该功能的演示
②播放背景音乐,暂时也使用一个打印语句来代替该功能
- 线程的注意事项
1.主方法也是一个独立的线程
2.线程任务独立的:会独立的获得CPU的资源
2.主方法:也是会启动一个线程任务
1.一个线程,有run方法也有start方法:
2.调用start启动线程:告诉CPU有一个独立的任务
3.线程不管多么牛皮:还是一个类:一个具体的线程对象
3.结论:run方法是可以通过线程对象调用:使用一个普通方法而已:所以启动的只有主线程,按照顺序执行