java程序员之旅eclipse开发技术详解本书第9章_第1页
java程序员之旅eclipse开发技术详解本书第9章_第2页
java程序员之旅eclipse开发技术详解本书第9章_第3页
java程序员之旅eclipse开发技术详解本书第9章_第4页
java程序员之旅eclipse开发技术详解本书第9章_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章多线程线程是比较重要的一部分,多线程是操作系统的发展方向,他具有并发性和执行效率高的特点。一个进程可以通过运行多个线程来并发的执行多个任务。在实际的开发中,一般在安装程序时,单击“安装”按钮后,会在后台运行一段时间,安装的情况要反映在界面上,并且不能影响其他程序的运行,这样就需要多线程,将前台和后台运行分开,作为分开的两个线程运行。本章就主要介绍一下SWT中的线程开发,以及解决开发中出现的的多线程问题。9.1创建线程线程的创建,主要包括创建主线程、实现Runnable接口和集成Thread类。本节主要介绍一下线程的创建,以及在线程创建中遇到的问题。9.1.1主线程主线程是在程序执行时立刻运行,是所有线程中运行最早的线程,类似于类里面的main()方法,它还是产生其他子线程的线程,还需要利用他执行各种线程的关闭动作,所以它也是最后完成的线程,由此可以看出,主线程的重要性。9.1.2实现Runnable接口创建线程创建线程的方法有两种,一种是继承Thread类,一种是实现Runnable接口。本节就主要介绍一下通过实现Runnable接口的方法创建线程。实现Runnable接口来创建线程,是线程最简单的创建方法。实现Runnable接口,需要定义一个名为run()的无参方法,并且在方法内写入实现方法即可,9.1.3继承Thread类创建线程创建Thread类创建线程,当继承Thread类时,必须重载run方法,run方法在这里也是新线程的入口,必须通过调用start()方法启动线程,在Thread类中定义了很多方法,可以让它的子类去重载,只有run方法是每个子类都必须重载的。Runnable中,只有实现一个run方法,如果不重载Thread类中的其他方法,是和Runnable相同的。实现Runnable方法体现了面向对象的设计思想,由于Java是单继承的,所有在继承其他的类是,就需要通过实现Runnable来实现创建线程。9.1.4多线程前面介绍的线程都是单线程,如果多个线程同时运行,就需要创建多个线程,然后依次调用start方法。新建了三个线程,并重载run()方法,三个线程分别创建一各for循环,每间隔一定时间打印输出打印一次。在主方法中,分别创建这三个类的对象,并调用start()方法开始执行。9.2调度线程的调度就是定义如何交换任务,以及如何选择下一个被执行任务。对线程进行调度,可以通过其中的sleep()、yield()、join()和优先级来完成。本节主要介绍线程的调度,以及其中用到的主要方法。9.2.1优先级线程的优先级用来判定何时运行某个线程。优先级高的线程能够够比优先级低的线程获得更多的cpu时间,设置线程的优先级,可以使用setPriority()方法来设置。使用方法为:其中有一个整型的参数level,它是用来设置优先级的大小,优先级最小的表示方法为MIN_PRIORITY,优先级最大的表示方法为MAX_PRIORITY,level的值在1~10之间,也就是优先级最小,level的值为1,优先级最大时,level的值为10。9.2.2sleep方法在前面的例子中,已经多次涉及到了sleep()方法,它可以使线程强制进入睡眠状态,是一个静态方法。可以使线程暂时停止。在sleep()使用时,可能会抛出InterruptedException异常,可以使用trycahch包围,进行异常处理。在程序中使用到了线程构造器,线程中的构造器主要包括:Thread()Thread(Runnabletarget)Thread(Runnabletarget,Stringname)Thread(Stringname)Thread(ThreadGroupgroup,Runnabletarget)Thread(ThreadGroupgroup,Runnabletarget,Stringname)Thread(ThreadGroupgroup,Stringname)9.2.3join方法Join()方法又叫加入方法。就是让一个线程跟随在另一个线程之后运行,当一个线程运行结束后,再继续来运行另一个线程。设置一个程序分别将三个线程的休眠时间改为1秒,在第二个线程中,循环到第五次的时候,加入线程1的join()方法,可以看到上图中,在第六次以后,第一个线程和第三个线程交替运行,直到结束,之后再次运行第二个线程。9.2.4yield方法yield()方法又叫让步,可以使当前运行的线程回到可运行的状态,让具有相同优先级的线程获得运行的机会。称yield方法为让步方法,但其往往达不到让步的效果,它只是让当前的线程回到可以运行的状态。9.3SWT线程前面介绍了一下线程的基础知识,在SWT的线程开发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论