Welcome

首页 / 软件开发 / JAVA / Java编程那些事儿96——多线程使用示例1

Java编程那些事儿96——多线程使用示例12010-03-15 csdn 陈跃峰12.3 多线程使用示例

多线程技术对于初学者来说,是编程思维的一种跳跃,在实际学习时,一定要熟悉线程的基础知识,掌握线程的实现方式,然后就是开始大量的进行实践,从实践中领悟线程编程的奥妙以及实现的原理。

下面通过几个常见的例子演示多线程的基本使用。

12.3.1 定时炸弹

定时炸弹是在电影中常见的一种装置,在该部分就使用多线程技术模拟该功能。实现的功能为:在程序启动以后进行倒计时,当60秒以后程序结束,在程序运行时可以在控制台输入quit控制线程(炸弹)的暂停。

在该示例程序中,开启了一个系统线程(main方法所在的线程),该线程的作用是启动模拟定时炸弹的线程,并且在控制台接受用户的输入,并判断输入的内容是否为quit,如果是则结束模拟定时炸弹的线程,程序结束。

首先来看一下使用继承Thread类的方式实现多线程时的代码示例,代码如下:

package example1;
import java.io.*;
/**
* 模拟定时炸弹线程
*/
public class TestTimeBomb1 {
public static void main(String[] args) {
//创建线程和启动线程
TimeBombThread tbt = new TimeBombThread();
//接受控制台输入
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String line;
try{
while(true){
System.out.println("输入quit结束线程:");
//获得控制台输入
line = br.readLine();
//判断是否是quit
if(line.equals("quit")){
tbt.stopThread(); //结束线程
break; //结束循环
}
}
}catch(Exception e){}
}
}
package example1;
/**
* 使用继承Thread类的方式模拟定时炸弹逻辑
*/
public class TimeBombThread extends Thread {
int n;
boolean isRun;
public TimeBombThread(){
n = 60;
isRun = true;
start();//启动线程
}

public void run(){
try{
while(isRun){
Thread.sleep(1000); //延迟1秒
System.out.println("剩余时间:" + n);
if(n <= 0){
isRun = false; //结束线程
System.out.println("炸弹爆炸!");
break;
}
n--; //时间减少1
}
}catch(Exception e){}
}

public void stopThread(){
isRun = false;
}
}