zoukankan      html  css  js  c++  java
  • 【算法笔记】多线程斐波那契数列

    多线程斐波那契数列

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

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

  • 相关阅读:
    成功引爆
    pecompact2脱壳手记
    象棋
    今天小雨
    出错了,怎么办?
    设计模式——Adapter模式
    表设计中应注意的2点
    设计模式——Singleton模式
    设计模式——Facade模式
    设计模式——Strategy模式
  • 原文地址:https://www.cnblogs.com/cunchen/p/9464226.html
Copyright © 2011-2022 走看看