A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王文辉 中级黑马   /  2015-7-20 19:37  /  334 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
不错哈 赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马