• 【算法笔记】多线程斐波那契数列


    多线程斐波那契数列

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

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

  • 相关阅读:
    控制反转和依赖注入
    共识机制是什么?
    实用拜占庭容错算法PBFT
    三种框架对比react vue 和Angular对比
    go语言学习笔记
    激活方法总结
    钱包助记词
    简历中存在的问题的处理
    why we use Symbols in Hash
    compact过滤数组中的nil
  • 原文地址:https://www.cnblogs.com/cunchen/p/9464227.html
Copyright © 2020-2023  润新知