- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验七 线程
云南大学信息学院 面向对象技术导论 java程序设计大学教程 实验
【开发语言及实现平台或实验环境】
Windows2000 或XP,JDK1.6与Jcreator4.0
【实验目的】
1. 理解线程的基本概念、优先级、生命周期等。
2. 掌握线程的一般创建与使用方法(Thread类与Runnable接口)。
3. 了解线程间的通信、多线程的同步等编程机制。
【实验要求】
1. 运行上课讲解的例子;
2. 完成下列实验内容。
【实验内容】
一、读懂并执行下列程序,理解Java中的多线程机制。
1. 运行下面的程序,理解用创建Thread子类的方法实现多线程。class SimpleThread extends Thread {
public SimpleThread(String str) {
super(str);
}
public void run() {
for (int i = 0; i 10; i++) {
System.out.println(i + + getName());
try {
sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) {}
}
System.out.println(DONE! + getName());
}
}
public class TwoThreadsTest {
public static void main (String[] args) {
new SimpleThread(Go to Beijing ).start();
new SimpleThread(Stay here!!).start();
}
}
问题:
(1) 程序的运行结果和功能分别是什么?
(2) 如果程序中去掉try-catch语句,程序是否仍能正常运行?
(3) Thread子类是如何实现多线程机制的?
(4) 如果希望执行三个线程,再显示“Go to Shanghai ”,程序如何修改?比较显示次序,是否相同。为什么会有这样的现象?
答:
1:运行结果:
功能:创建两个线程并打印做检测
2:去掉后程序能够正常运行但是运行的速度加快,即线程没有了等待时间。
3:在编写复杂程序时相关的类可能已经继承了某个基类,而Java不支持多继承,在这种情况下,便需要通过实现Runnable接口来生成多线程
用到Thread类的构造方法
public Thread(Runnable target);
//构造一个新的线程对象,以一个实现Runnable接口的类的对象为参数。默认名为Thread-n,n是从0开始递增的整数。
4:首先在函数TwoThreadsTest添加一个线程即是添加语句new SimpleThread(Go to Qinghai ).start();和System.out.println(“Go to Shanghai”);即可由于学校的机器是四核的无法完成下面的操作!
2. 运行下面的程序,理解用实现Runnable接口的方法实现多线程。//这是一个时钟Applet,它显示当前时间并逐秒进行更新。import java.awt.*;
import java.applet.*;
import java.util.*;
public class Clock extends Applet implements Runnable{
Thread clockThread;
public void start(){
if(clockThread==null){
clockThread=new Thread(this,Clock);
clockThread.start();
}
}
public void run(){
while(clockThread !=null){
repaint();
try{
clockThread.sleep(1000);
文档评论(0)