黑马程序员技术交流社区

标题: 多线程概念---让你了解线程 [打印本页]

作者: 王文辉    时间: 2015-7-20 19:37
标题: 多线程概念---让你了解线程
要掌握多线程,首先你需要了解进程和线程的概念,以及两者之间的关系。
        1,进程
        进程是程序在处理机中的一次运行。一个进程既包括其所要执行的指令,也包括了执行指令所需的系统资源,不同进程所占用的系统资源相对独立。所以进程是重量级的任务,它们之间的通信和转换都需要操作系统付出较大的开销。
        简单来说,进程就是一个正在执行的程序。
        每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。
        2,线程
        线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己基本上不拥有系统资源,但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。所以线程是轻量级的任务,它们之间的通信和转换只需要较小的系统开销。
        Java支持多线程编程,因此用Java编写的应用程序可以同时执行多个任务。
        3,线程和进程之间的关系
        线程就是进程中的一个独立的控制单元。线程在控制着进程的执行。只要进程中有一个线程在执行,进程就不会结束。
        一个进程中至少有一个线程。
        4,多线程概念
        了解了进程和线程以及两者之间的关系,我们就可以得出这样的结论:
        单线程:一个进程中只有一个执行路径,即一个线程,那么这个程序称为单线程。
        多线程:一个进程中有多个执行路径,即多个线程,那么这个程序就被称为多线程。
        5,多线程的好处(意义)
        为什么出现多线程?
        举个例子:从磁盘读取一个文件需要5秒,处理一个文件需要2秒。
                单线程执行顺序:读取文件A、处理文件A、读取文件B、处理文件B
                单线程实现这样的操作共需要14秒,可以说效率非常低,因为从磁盘中读取文件的时候,大部分的CPU时间用于等待磁盘去读取数据。在这段时间里,CPU非常的空闲,可以让它可以做一些别的事情。
                通过改变操作的顺序,就能够更好的使用CPU资源。如:
                读取文件A、读取文件BA还未读取完)、处理文件AB未读取完)、处理文件B
                按照这样的顺序执行只需要12秒。
        这样我们就得出了结论:多线程的出现能让程序产生"同时运行"效果。可以提高程序执行效率。
        注意:随机性原理,CPU在某一个时刻只能执行一个程序,多个程序执行只是CPU快速的切换完成的。


作者: 许庭洲    时间: 2015-7-22 13:46
值得学习ing!
作者: 噜啦啦噜啦啦    时间: 2015-7-22 13:54
不错哈 赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2