河北工业大学城市学院2010级网络编程技术试验指导书
实验五 多线程程序设计
实验目的:理解线程的概念、线程的生命周期,掌握多线程的编程:继承Thread类与使用Runnable接口。 实验要求:
1、掌握两种创建线程的方法:一种是创建用户自己的线程子类,另一种是在用户自己的类中实现Runable接口。
2、掌握线程优先极。 3、掌握线程的同步方法。 实验内容:
多线程是指同时存在的几个执行体,按几条不同的执行线索共同工作的情况。Java语言的一个重要功能特点就是内置对多线程的支持,踏实的编程人员可以很方便的开发出具有多现成功能,能同时处理多个任务的功能强大的应用程序。
Java中编程实现多线程应用有两种途径:一种是创建用户自己的线程子类,另一种是在用户自己的类中实现Runable接口。无论那种方法,都需要使用到Java基础类库中的Thread类及其方法。
创建Thread类的子类:在这个途径中,用户程序需要创建自己的Thread类的子类,并在子类中重新定义自己的run()方法,这个run()方法中包含了用户线程的操作。这样在用户程序需要建立自己的线程时,他只需要创建一个一定已定义好的Thread子类的实例就可以了。
实现Runnable接口:在这个途径中,已经有了一个父类的用户类可以已通过实现Runable()接口的方法来定义用户线程的操作。我们知道,Runable接口只有一个方法run(),实现这个接口,就必须要定义run()方法的具体内容。用户新建现成的操作也有这个方法来决定。定义好run()方法后,当用户程序需要建立新线程时,只要以这个实现了Runnable()方法的类为参数创建系统类Thread的对象,就可以把用户实现的run()方法继承过来。 ? 1、用创建Thread类的子类的方法实现多线程:
共51页,第25页
河北工业大学城市学院2010级网络编程技术试验指导书
2、用实现Runnable接口的方法实现多线程。
共51页,第26页
河北工业大学城市学院2010级网络编程技术试验指导书
编译并运行程序。
3、线程优先级的作用:用继承Thread类和执行Runnable接口的方法创建两个线程,并测试这两个线程的同时运行情况。 a. 将两个线程设为同优先级,比较运行情况。
b. 将两个线程设为同优先级, 比较线程调用sleep()/yeild()方法后出现什么情况。
c.将两个线程设为不同优先级,比较以上两种情况。
4、线程的同步:编写两个线程,一个线程向数组中存数据,一个线程向数组中取数据。练习如何实现线程的同步。
5、编写一个应用程序,创建三个线程分别显示各自的时间。
共51页,第27页
河北工业大学城市学院2010级网络编程技术试验指导书
实验六:系统I/O程序设计
实验目的:理解数据流的概念、Java流的层次结构及文件的概念;熟悉图形用户界面基本组件的使用方法,熟悉如何使用布局管理器对组件进行管理及如何使用Java的事件处理机制。 实验要求:
1、掌握字节流和字符流的基本使用方法。 2、能够创建、读写、更新文件。
3、掌握在Applet容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。
4、理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 5、掌握编写独立运行的窗口界面的方法。 6、了解对话框及Java Swing 组件的使用方法。 实验内容:
1、创建标准数据流的应用程序
标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
程序功能:将键盘上输入的字符在屏幕上显示出来,源代码如下
共51页,第28页