📄 threadtest.java
字号:
// 计算并打印Fibonacci数列的Thread
class Fibonacci extends Thread
{
// 在更新前等待的最短时间
private static final long WAIT_TIME = 500;
// 数列中的前一个数
private long previous;
// 数列中的当前数值
private long current;
// 这个数列的标记
private char ident;
// 构造一个新的Fibonacci数列
public Fibonacci(char id)
{
// 为这个数列设置一个标志
ident = id;
// 初始化数列中的前2个数
previous = 1;
current = 1;
}
// 打印数列中的下一个数
private void printNext()
{
System.out.print("(" + ident + ") " + current + ", ");
}
// 计算数列中的下一个数;它是数列中前2个数的和
private void update()
{
long temp = current;
current = previous + current;
previous = temp;
}
// 线程的执行代码;这个方法是从Thread类继承而来的
public void run()
{
// 打印数列中的前两个数字
printNext();
printNext();
// 得到这个线程的引用
Thread t = Thread.currentThread();
// 循环,直到线程激活
while(t == this)
{
// 更新数列
update();
// 只要当前的数列值超过了最大的long型数值,它就会截断为负数
// 只要当前值为负数就终止这个线程的执行
if(current < 0L)
{
System.out.println("\nNo more long values! " +
"Thread terminating...");
t = null;
return;
}
// 打印下一个Fibonacci数
printNext();
// 暂停一会
try
{
Thread.sleep(WAIT_TIME);
}
catch(InterruptedException e) { }
}
} // run
}
// 创建一个新的Fibonacci数列产生器来测试多线程应用程序
public class ThreadTest
{
public static void main(String[] args)
{
// 启动几个Fibonacci 线程
new Fibonacci('A').start();
new Fibonacci('B').start();
new Fibonacci('C').start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -