java高级应用实验报告_java实验报告(多线程的应用)

实验名称: 多线程的应用 实验地点:

所使用的工具软件及环境:

环境:Windows 8.1;jdk 1.8;

工具:eclipse

实验目的:

掌握线程的生命周期及状态迁移,学会如何创建线程,掌握线程的调度策略,线程优先级和线程同步

1、编写applet程序,其中包含一个滚动的字符串,字符串从左向右移动,当所有的字符都从屏幕的右边消失后,字符串重新从左边出现并继续向右移动。

2、编写一个applet内部显示一个蓝色反弹球的程序,通过一个事件使该球运动,当该球撞击applet边框时,它应从边框弹向相反方向运动。

源程序:

import javax.swing.JApplet;

import java.awt.;

import java.applet.;

public class bull extends Applet implements Runnable {

/**

* Create the applet.

*/

int x,y;

public bull() {

}

Thread bull_Draw =null;

public void init()

{

bull_Draw =new Thread(this);

}

@Override

public void paint(Graphics g)

{

g.setColor(Color.blue);

g.fillOval(x, y, 20, 20);

}

public void start()

{

bull_Draw.start();

try {

Thread.sleep(50);

}

catch(InterruptedException e)

{}

}

public void stop()

{

if(bull_Draw.isAlive())

bull_Draw.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;

y=y+dy;

if(x>getWidth()-30||x<0)

dx=-dx;

if(y>getHeight()-30||y<0)

dy=-dy;

repaint();

Thread.sleep(100);

}

}

catch(InterruptedException e){}

}

}

实验结果与体会:

结果:

0b0040638c28927a28d918ed0b5d99e0.png

体会:

实验四是对多线程的相关练习。多线程使程序一个时刻处理多个问题,但cpu每个时刻只能处理一个问题,所以多线程其实是把时间分成了许多小段,分开执行不同的线程,使其看起来在同时运行。

创建线程必须继承Thread class,它已经为线程的创建和运行做了必要的配置。

Run()方法所包含的代码就是和其他线程同时运行的代码,以达到同一时段运行多端代码的目的。

Sleep()使当前的线程暂停用户设置的毫秒,以达到控制字符速度的目的。

setPrioity()可以设置线程的优先级别,分为高中低三档,cpu会尽量执行优先级高的线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值