java入门到精通第9章

java入门到精通第9章

ID:36203734

大小:310.31 KB

页数:12页

时间:2019-05-07

java入门到精通第9章_第1页
java入门到精通第9章_第2页
java入门到精通第9章_第3页
java入门到精通第9章_第4页
java入门到精通第9章_第5页
资源描述:

《java入门到精通第9章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章多线程线程是比较重要的一部分,多线程是操作系统的发展方向,他具有并发性和执行效率高的特点。一个进程可以通过运行多个线程来并发的执行多个任务。在实际的开发中,一般在安装程序时,单击“安装”按钮后,会在后台运行一段时间,安装的情况要反映在界面上,并且不能影响其他程序的运行,这样就需要多线程,将前台和后台运行分开,作为分开的两个线程运行。本章就主要介绍一下SWT中的线程开发,以及解决开发中出现的的多线程问题。9.1创建线程线程的创建,主要包括创建主线程、实现Runnable接口和集成Thread类。本节主要介绍一下线程的创建,以及在线程创建中遇到的

2、问题。9.1.1主线程主线程是在程序执行时立刻运行,是所有线程中运行最早的线程,类似于类里面的main()方法,它还是产生其他子线程的线程,还需要利用他执行各种线程的关闭动作,所以它也是最后完成的线程,由此可以看出,主线程的重要性。9.1.2实现Runnable接口创建线程创建线程的方法有两种,一种是继承Thread类,一种是实现Runnable接口。本节就主要介绍一下通过实现Runnable接口的方法创建线程。实现Runnable接口来创建线程,是线程最简单的创建方法。实现Runnable接口,需要定义一个名为run()的无参方法,并且在方法内写

3、入实现方法即可,9.1.3继承Thread类创建线程创建Thread类创建线程,当继承Thread类时,必须重载run方法,run方法在这里也是新线程的入口,必须通过调用start()方法启动线程,在Thread类中定义了很多方法,可以让它的子类去重载,只有run方法是每个子类都必须重载的。Runnable中,只有实现一个run方法,如果不重载Thread类中的其他方法,是和Runnable相同的。实现Runnable方法体现了面向对象的设计思想,由于Java是单继承的,所有在继承其他的类是,就需要通过实现Runnable来实现创建线程。9.1.4

4、多线程前面介绍的线程都是单线程,如果多个线程同时运行,就需要创建多个线程,然后依次调用start方法。新建了三个线程,并重载run()方法,三个线程分别创建一各for循环,每间隔一定时间打印输出打印一次。在主方法中,分别创建这三个类的对象,并调用start()方法开始执行。9.2调度线程的调度就是定义如何交换任务,以及如何选择下一个被执行任务。对线程进行调度,可以通过其中的sleep()、yield()、join()和优先级来完成。本节主要介绍线程的调度,以及其中用到的主要方法。9.2.1优先级线程的优先级用来判定何时运行某个线程。优先级高的线程能

5、够够比优先级低的线程获得更多的cpu时间,设置线程的优先级,可以使用setPriority()方法来设置。使用方法为:其中有一个整型的参数level,它是用来设置优先级的大小,优先级最小的表示方法为MIN_PRIORITY,优先级最大的表示方法为MAX_PRIORITY,level的值在1~10之间,也就是优先级最小,level的值为1,优先级最大时,level的值为10。9.2.2sleep方法在前面的例子中,已经多次涉及到了sleep()方法,它可以使线程强制进入睡眠状态,是一个静态方法。可以使线程暂时停止。在sleep()使用时,可能会抛出I

6、nterruptedException异常,可以使用trycahch包围,进行异常处理。在程序中使用到了线程构造器,线程中的构造器主要包括:Thread()Thread(Runnabletarget)Thread(Runnabletarget,Stringname)Thread(Stringname)Thread(ThreadGroupgroup,Runnabletarget)Thread(ThreadGroupgroup,Runnabletarget,Stringname)Thread(ThreadGroupgroup,Stringname)9.

7、2.3join方法Join()方法又叫加入方法。就是让一个线程跟随在另一个线程之后运行,当一个线程运行结束后,再继续来运行另一个线程。设置一个程序分别将三个线程的休眠时间改为1秒,在第二个线程中,循环到第五次的时候,加入线程1的join()方法,可以看到上图中,在第六次以后,第一个线程和第三个线程交替运行,直到结束,之后再次运行第二个线程。9.2.4yield方法yield()方法又叫让步,可以使当前运行的线程回到可运行的状态,让具有相同优先级的线程获得运行的机会。称yield方法为让步方法,但其往往达不到让步的效果,它只是让当前的线程回到可以运行

8、的状态。9.3SWT线程前面介绍了一下线程的基础知识,在SWT的线程开发中,基本思路是:将前台和后台分开为两个类;为后台处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。