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

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

  • 相关阅读:
    单例类
    日期类2
    日历类
    日期转换类
    抓取网页内容并截图
    关于计时器与多线程
    让页面上图片不变形
    Thread 调用方法的方式
    语音放大缩小
    阻止Enter键回发到服务端Asp.net
  • 原文地址:https://www.cnblogs.com/cunchen/p/9464226.html
Copyright © 2011-2022 走看看