实验七 线程

更新时间:2024-04-11 10:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验七 线程

一、实验目的

1.线程的概念、线程的生命周期。

2.多线程的编程:继承Thread类与使用Runnable接口。 3.使用多线程机制实现动画。 4. 处理简单的多线程互斥和同步;

二、实验内容与要求 1、 仔细读下面的JAVA语言源程序,自己给出程序的运行结果 public class Ch81 extends Thread { int n; Ch81()

}

public void run() { for (n=0;n<6;n++) { try {

System.out.print(n); Thread.sleep(500); }

catch(InterruptedException e) { System.out.println(\ } }

}

public static void main(String args[]) {

new Ch81(); }

}

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,\clockThread.start();

{

Thread td=new Thread(this); td.start();

}

}

public void run(){

while(clockThread !=null){ repaint(); try{

clockThread.sleep(1000); }catch(InterruptedException e){} } }

public void paint(Graphics g){ Date now=new Date();

g.drawString(now.getHours()+\}

public void stop(){ clockThread.stop();

clockThread=null; } }

3.利用多线程编程实现一个正在旋转的地球

三、思考题

1.简述多线程互斥和同步的概念

2.简述并区分程序、进程和线程三个概念。

3.线程有哪几个基本的状态?Java中线程调度遵循何种原则?

4.实现多线程可以用哪两种基本方法?将这两种方法进行比较。

四、实验报告

1、实验完成后,检查是否达到试验目的。 2、编写实验报告(打印或手写均可),在下一次上实验课时提交。 3、评出成绩,按五级(A,B,C,D、E)评分。

public class WXJ extends Thread{ int n; WXJ() {

Thread td=new Thread(this); td.start(); }

for (n=0;n<6;n++) { try {

System.out.print(n); }

catch(InterruptedException e) { System.out.println(\); }

public void run() {

Thread.sleep(500);

} }

public static void main(String args[]) { }

new WXJ(); }

import java.awt.*; import java.applet.*; import java.util.*;

public class WXJ extends Applet implements Runnable{ Thread clockThread; public void start(){ if(clockThread==null){

clockThread=new Thread(this,\); clockThread.start(); } }

public void run(){

while(clockThread !=null){ repaint(); try{

clockThread.sleep(1000);

}catch(InterruptedException e){} } }

public void paint(Graphics g){ Date now=new Date();

g.drawString(now.getHours()+\+now.getMinutes()+\+now.getSeconds(),5,10); }

public void stop(){ clockThread.stop(); clockThread=null; } }

本文来源:https://www.bwwdw.com/article/guyp.html

Top