多线程斐波那契数列
Fibonacci 类多线程实现斐波那契数列。
在多线程中,需要线程共享的变量必须使用静态变量。 根据公式F[N] = F[N-1] + F[N-2] 可知至少需要要两个线程共享的变量,另外由于需要记录角标,另设一个线程共享变量public class Fibonacci implements Runnable { public static int num = 2; //用于记录角标,静态变量实现多线程共享 public int numRe ; //用于记录角标,常量实现线程内角标持久化 public static int a = 0; //f[n-2] public static int b = 1; //f[n-1] public int c; //f[n] public Fibonacci() { c = a + b; a = b; b = c; numRe = num++; } public void run() { System.out.println("F["+ numRe +"]="+ c); Thread.yield(); }}
Generate 是对Fibonacci的线程执行
public class Generate { public static void main(String[] args) { for (int i = 0; i < 10; i++) { new Thread(new Fibonacci()).start(); } }}
通过线程调度实现多线程实现斐波那契数列