快速业务通道

Java编程那些事儿93——多线程基础 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
。另外,同一个程序中的线程之间变量是共享的,线程之间的数据交换要比进程之间的数据交换简单一些。

总之,无论是进程的概念还是线程的概念,都使编程从串行编程(依次执行)进入到并行编程(同时执行)的领域,而在CPU内部实现的原理都是按照时间片进行切换。

12.1.2 多线程优势

线程的概念增加了编程的难度,也增加了程序的复杂度,但是该概念还是在程序内部大量进行使用,这主要因为多线程程序的优势。

多线程程序主要的优势有两个:

1、 提高界面程序响应速度

通过使用线程,可以将需要大量时间完成的流程在后台完成,例如现在常见的网络程序,在进行网络通讯时都需要使用单独的流程进行,也就是启动一个单独的线程进行,这样不会阻塞系统线程的执行,也就是不会阻塞对于界面的操作。另外,如果需要大量操作数据或进行数据变换的程序,也需要在后台启动单独的线程来提高前台界面的响应速度。

通过将程序逻辑独立成一个单独的线程,使得控制界面的系统线程和逻辑线程同时执行,避免了逻辑操作需要大量的时间阻塞系统的线程执行,从而大幅度提高界面程序的响应速度。

Java编程那些事儿93——多线程基础(2)

时间:2010-03-15 csdn 陈跃峰

2、 充分利用系统资源

通过在一个程序内部同时执行多个流程,可以充分利用CPU等系统资源,从而最大限度的发挥硬件的吸能。就像一个人同时承担多份工作一样,这样可以使这个人的时间获得比较充分的使用。

当然,多线程程序也有一些不足,例如当程序中的线程数量比较多时,系统将花费大量的时间进行线程的切换,这反而会降低程序的执行效率。

但是,相对于优势来说,劣势还是很有限的,所以在现在的项目开发中,多线程编程技术获得了广泛的使用。

12.1.3 线程生命周期

线程作为一个全新的概念,主要由系统进行管理,但是熟悉线程概念的各个阶段,是控制线程程序执行的基础,和以后学习的其它Java技术类似,线程在程序中从出现到消亡的各个阶段,在程序中统称为线程的生命周期。

在Java语言中线程的概念由java.lang.Thread类实现,在该类中封装线程的概念,并且将线程控制的相关方法包含在该类的内部。后续介绍中如果没有特别说明,则提到的方法均是Thread类内部的方法。

线程的生命周期中包含如下阶段:

1、 新建状态(New)

该状态指线程已经初始化完成,但是还没有启动。具体点说,也就是线程对象已经创建,准备工作已经完成。

2、 运行状态(Run)

运行状态是指线程的正常执行状态,处于该状态的线程在CPU内部执行程序,也就是线程正常运行时的状态。

3、 阻塞状态(Block)

阻塞状态指线程处于执行状态,但是由于没有获得CPU的执行时间,而处于CPU外部等待线程执行的状态。

4、 死亡状态(Dead)

死亡状态指线程执行结束,释放线程占用的系统资源,结束线程执行的状态。

在实际使用线程时,首先需要创建一个线程对象,在线程对象创建完成以后,该线程就处于新建状态了,在新建状态下的线程,已经初始化完成,但是还没有启动,也就是不会获得CPU的执行时间。在新建状态下,一般可以通过调用线程对象中的start方法,使线程进入到运行状态,start方法不阻塞程序的执行,在调用完成以后立刻就返回了。一旦线程进入运行状态,则开始排队进入CPU执行,根据系统的调度,线程就在运行状态和阻塞状态之间进行切换,这就是线程的执行状态。当线程执行完成或需要结束该流程时,则需要将线程切换到死亡状态,释放线程占用的资源,结束线程的执行。

另外在线程执行的过程中也可以根据需要调用Thread类中对应的方法改变线程的状态。例如使用线程对象的interrupt中断线程的执行,使线程进入到死亡状态;使用yield方法使当前正在执行的线程从运行状态切换到阻塞状态。

而具体线程编程的实现方式、线程

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号