告
一.实验内容:
题1:利用多线程技术编写applet程序。其中包含一个滚动的字符串,字符串从左向右移动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。
题2:编写一个applet内部显示一个蓝色反弹球的程序,通过一个事件使该球运动,在该球撞击applet边框时,它应从边框弹回并以相反方向运动。 选做题1.
二.实验目的:
掌握线程的生命周期及状态迁移, 学会如何创建线程,掌握线程. 的调度策略、线程优先级和线程同步
三.实验流程
四.实验程序:
package Thread2;
import java.awt.*; import java.applet.*;
public class Thread2 extends Applet implements Runnable {
}
public void init() {
m_Draw = new Thread(this); }
public void paint(Graphics g) {
g.setColor(Color.red); g.fillOval(X,Y, 20, 20);
g.drawString(str, X2, getHeight()/2);
int X, Y;
final String str = \"hello world!\"; int X2=0; public Thread2() { }
Thread m_Draw = null;
public void start() { }
public void stop() { }
public void run() {
int dx=(int)(Math.random()*10)%2+3; int dy=(int)(Math.random()*10)%2+3; try {
while(true) {
X = X + dx;
if (Y > getHeight() - 40 || Y < 0)
if(m_Draw.isAlive())
m_Draw.stop(); m_Draw.start(); try{
Thread.sleep(50);
}catch(InterruptedException e){}
Y = Y + dy; dy = -dy;
if (X > getWidth() - 40 || X < 0) dx = -dx;
X2 = ++X2 % getWidth();
repaint(); }
Thread.sleep(100); }
}
}catch(InterruptedException e){}
五.实验结果截图
六.实验心得:
通过这一次实验让我加深了对于多线程的理解 1.首先:java程序是建立在线程之上的。
而多线程解决了一个程序同时做几件事情的问题。多线程其实就是把cpu的时间分隔了多段而每段时间CPU也只能执行一个线程.这是在单个CPU的环境下。 多线程但是会影响程序运行的速度.但它使程序同一时刻能处理多个问题.
2.创建线程必须继承Thread class它已经为线程的创建和运行做了必要的配置。 run()是线程就重要的方法。你必须覆写这个方法达到你想要的目的。
run()方法所包含的代码就是和其他线程同时运行的代码,以达到同一时刻运行多段代码的目的。当终止了run()以后。这个线程也就结束了。调用线程的start()方法才会执行run()方法。
Sleep(毫秒)使当前的线程暂停用户设置的毫秒。此时cpu会转到别的线程上。在此次实验中,我们利用sleep()方法来控制字符串在窗口中的移动速度。
setPriority(优先级别)可以设置线程的优先级。分高,中,低。设置成高会使CPU尽可能的先执行高级别的线程。
因篇幅问题不能全部显示,请点此查看更多更全内容