多线程斐波那契数列

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();
        }
    }
}

通过线程调度实现多线程实现斐波那契数列

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2021-11-20
  • 2022-02-18
  • 2021-10-12
  • 2022-12-23
猜你喜欢
  • 2022-02-12
  • 2021-12-21
  • 2022-01-18
  • 2021-05-30
  • 2021-04-25
相关资源
相似解决方案