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

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

  • 相关阅读:
    汇编讲解(上)--逆向开发
    两数之和 II
    解析器模式--设计模式
    访问者模式--设计模式
    命令模式--设计模式
    ccf-201512-2 消除类游戏
    ccf-201503-2 数字排序
    移动端兼容和适配问题
    ccf-201409-2 画图
    ccf-201409-3 字符串匹配
  • 原文地址:https://www.cnblogs.com/cunchen/p/9464226.html
Copyright © 2011-2022 走看看