1.实验目的:(1)本实验的目的用于指导读者掌握Java多线程应用程序设计方法,并了解在Java用程序中控制线程状态的方法。(2)了解关于Java线程对象的定义方法和多线程应用程序设计方...
1.实验目的:
(1)本实验的目的用于指导读者掌握 Java 多线程应用程序设计方法,并了解在 Java 用程序中控制线程状态的方法。
(2)了解关于 Java 线程对象的定义方法和多线程应用程序设计方法。
2.实验内容:
运行以下代码体会通过继承 Thread 类构造线程体的特点:
class SimpleThread extends Thread {
public SimpleThread(String str) {
super(str); //调用其父类的构造方法
}
public void run() { //重写 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("First").start(); //第一个线程的名字为 First
new SimpleThread("Second").start(); //第二个线程的名字为 Second
}
}
分析一下运行结果,就会发现两个线程是交错运行的,感觉就象是两是实际上一台计算机通常就只有一个 CPU,个线程在同时运行。但在某个时刻只能是只有一个线程在运行,而 java 语言在设计时就充分考虑到线程的并发调度执行。对于程序员来说,在编程时要注意给每个线程执行的时间和机会,主要是通过让线程睡眠的办法(调用 sleep()方法)来让当前线程暂停执行,然后由其它线程来争夺执行的机会。如果上面的程序中没有用到sleep()方法,则就是第一个线程先执行完毕,然后第二个线程再执行完毕。所以用活sleep()方法是学习线程的一个关键。
3.实验步骤:
用 Jcreator 等工具创建 Java 程序,输入上述程序代码后,编译运行。
展开