网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

在IntelliJIDEA中多线程并发代码的调试方法详解-创新互联

通常来说,多线程的并发及条件断点的debug是很难完成的,或许本篇文章会给你提供一个友好的调试方法。让你在多线程开发过程中的调试更加的有的放矢。

从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站设计、网站建设、网站策划、网页设计、域名与空间、网页空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。

我们将通过一个例子来学习。在这里,我编写了一个多线程程序来计算此数学问题:100! + 100000!。即:100的阶乘 + 100000的阶乘。

数学不好的同学看这里,100 阶乘就是:1 * 2 * 3 * …… * 100 = ? ,简写为100!

import java.math.BigInteger;

public class MathProblemSolver {

  //开启两个线程
  public static void main(String arg[]){
    //第一个线程计算 100!
    FactorialCalculatingThread thread1 = new FactorialCalculatingThread(100);
    //第二个线程计算 100000!
    FactorialCalculatingThread thread2 = new FactorialCalculatingThread(100000);

    thread1.setName("Thread 1");
    thread2.setName("Thread 2");

    thread1.start();
    thread2.start();

    try {
      thread1.join(); //线程Jion,以使主线程在“线程1”和“线程2”都返回结果之前不会进一步执行
      thread2.join();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    BigInteger result = thread1.getResult().add(thread2.getResult());
    System.out.println("将两个线程的计算结果相加等于:" + result);
  }

  //用于阶乘计算的线程类
  private static class FactorialCalculatingThread extends Thread {
    private BigInteger result = BigInteger.ONE;
    private long num;

    public FactorialCalculatingThread(long num) {
      this.num = num;
    }

    @Override
    public void run() {
      System.out.println(Thread.currentThread().getName() + " 开始阶乘的计算:" + num);
      factorialCalc(num);
      System.out.println(Thread.currentThread().getName() + "执行完成");
    }

    //数的阶乘计算方法
    public void factorialCalc(long num) {
      BigInteger f = new BigInteger("1");
      for (int i = 2; i <= num; i++)
        f = f.multiply(BigInteger.valueOf(i));
      result = f;
    }

    public BigInteger getResult() { return result; }
  }
}

网页名称:在IntelliJIDEA中多线程并发代码的调试方法详解-创新互联
分享地址:http://bjjierui.cn/article/djhppi.html

其他资讯