java多线程计算(JAVA多线程累加)

2024-10-13 12:40:08 0

java多线程计算(JAVA多线程累加)

其实java多线程计算的问题并不复杂,但是又很多的朋友都不太了解JAVA多线程累加,因此呢,今天小编就来为大家分享java多线程计算的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

JAVA多线程累加

ExecutorService threadPool2 = Executors.newFixedThreadPool(10);ExecutorCompletionService《Integer》 executorCompletionService = new ExecutorCompletionService《Integer》(threadPool2);for (int i = 0; i 《 10; i++) {executorCompletionService.submit(new Callable《Integer》() {@Overridepublic Integer call() throws Exception {int sum = 0;for (int j = 0; j 《 10; j++) {sum += new Random().nextInt(1000);}System.out.println("num:" + sum);return sum;}});}int sum = 0;for (int i = 0; i 《 10; i++) {try {int num = executorCompletionService.take().get();sum += num;} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}System.out.println("sum:" + sum);

java写一个多线程程序,计算各种统计值的数字列表

package com.accp.wangyou;import java.util.Arrays;public class test { final int arr = { 90, 81, 78, 95, 79, 72, 85 }; public static void main(String args) { new Thread(new test().new runnable1()).start(); new Thread(new test().new runnable2()).start(); new Thread(new test().new runnable3()).start(); } class runnable1 implements Runnable { public void run() { int avg = 0; for (int i = 0; i 《 arr.length; i++) { avg += arr; } System.out.println("平均值为:" + avg / arr.length); } } class runnable2 implements Runnable { public void run() { Arrays.sort(arr); System.out.println("最大值:" + arr); } } class runnable3 implements Runnable { public void run() { Arrays.sort(arr); System.out.println("最小值:" + arr); } }}

Java单多线程求pair值算法比较

   进程和线程的概念

   什么是进程

  一个进程就是在一个运行的程序 它有自己独立的内存空间 一组系统资源 每个进程的内部数据和状态都是独立的 例如在window是同时打开多个记事本 虽然它们所运行的程序代码都是一样的 但是所使用的内存空间是独立的 互不干扰

   什么是线程

  线程与进程相似 是一段完成某个特定功能的代码 是程序中单个顺序的流控制;但与进程不同的是 同类的多个线程共享一块内存空间和一组系统资源 而线程本身的数据通常只有微处理器的寄存器数据 以及一个供程序执行时使用的堆栈

   进程与线程的区别

   进程:每个进程都有独立的代码和数据空间(进程上下文) 进程切换的开销大

   线程:轻量的进程 同一类线程共享代码和数据空间 每个线程有独立的运行栈和程序计数器(PC) 线程切换的开销小

   多进程:在操作系统中 能同时运行多个任务程序

   多线程:在同一应用程序中 有多个顺序流同时执行

   线程创建的两种方式

  采用继承Thread类创建线程

  该方法比较简单 主要是通过继承java lang Thread类 并覆盖Thread类的run()方法来完成线成的创建 Thread 类是一个具体的类 即不是抽象类 该类封装了线程的行为 要创建一个线程 程序员必须创建一个从 Thread 类导出的新类 Thread类中有两个最重要的函数run()和start()

  通过实现Runnable接口创建线程

  该方法通过生成实现java lang Runnable接口的类 该接口只定义了一个方法run() 所以必须在新类中实现它 但是 Runnable 接口并没有任何对线程的支持 我们还必须创建 Thread 类的实例 这一点通过 Thread 类的构造函数

  public Thread(Runnable target);来实现

   单线程和多线程性能比较

  以使用蒙特卡罗概率算法求π为例 进行单线程和多线程时间比较

   什么是蒙特卡罗概率算法

  蒙特卡罗法(Monte Carlo method)是以概率和统计的理论 方法为基础的一种计算方法 将所求解的问题同一定的概率模型相联系 用电子计算机实现统计模拟或抽样 以获得问题的近似解 故又称统计模拟法或统计试验法 百度百科

  蒙特卡罗求算法求π

  第一步

  画正方形和内切圆

  

  第二步

  变换表达式

  正方形面积As=( R)^

  圆的面积Ac=πR^

  Ac/As=( R)^ /πR^

  π= As/Ac

  令P=As/Sc 则π= P

  第三步

  重复N次实验求平均值

  在正方形区域内随机生成一个点A 若A落在圆区域内 M++

  P=M/N

  π= P N的取值越大 π的值越精确

   java代码实现算法

  N取值为 万 多线程的数为 每个线程执行 万次模拟实验

  线程实现

  import ncurrent CountDownLatch;

  public class ProModel implements Runnable {

  public int N;//随机实验的总次数

  public static int M;//随机点落在圆中的次数

  private int id;

  private final CountDownLatch doneSignal;

  OBJ semaphore;

  public ProModel(int id CountDownLatch doneSignal int N OBJ semaphore ){

  this id=id;

  this doneSignal=doneSignal;

  this N=N;

  this semaphore=semaphore ;

  M= ;

  }

  public void run(){

  int tempM= ;

  for(int i= ;i《N;i++){

  if(isInCircle()){

  tempM++;

  }

  }

  synchronized (semaphore) {

  add(tempM);

  }

  untDown();//使end状态减

  }

  public  void add(int tempM){

  System out println(Thread currentThread() getName());

  M=M+tempM;

  System out println(M);

  }

  //随机产生一个在正方形区域的点 判断它是否在圆中

  public boolean isInCircle(){

  double x=Math random();

  double y=Math random();

  if((x )*(x )+(y )*(y )《 )

  return true;

  else

  return false;

  }

  public static int getTotal(){

  return M;

  }

  }

  多线程Main实现

  import ncurrent CountDownLatch;

  import ncurrent ExecutorService;

  import ncurrent Executors;

  public class MutliThread {

  public static void main(String args) throws InterruptedException {

  long begin=System currentTimeMillis();

  int threadSize= ;

  int N= ;

  OBJ semaphore = new OBJ();

  CountDownLatch doneSignal  = new CountDownLatch(threadSize);

  ProModel;

  //设置特定的线程池 大小为threadSizde

  System out println( begins! );

  ExecutorService exe = Executors newFixedThreadPool(threadSize);

  for(int i= ;i《threadSize;i++)

  exe execute(new ProModel(i+ doneSignal N semaphore));

  try{

  doneSignal await();            //等待end状态变为            }catch (InterruptedException e) {

  // TODO: handle exception

  e printStackTrace();

  }finally{

  System out println( ends! );

  System out println( *(float)ProModel getTotal()/(float)(threadSize*N));

  }

  exe shutdown();

  long end=System currentTimeMillis();

  System out println( used time(ms): +(end begin));

  }

  }

  class OBJ{}

  单线程Main实现

  import ncurrent CountDownLatch;

  import ncurrent ExecutorService;

  import ncurrent Executors;

  public class SingleThread {

  public static void main(String args) {

  long begin=System currentTimeMillis();

  int threadSize= ;

  int N= ;

  OBJ semaphore = new OBJ();

  CountDownLatch doneSignal  = new CountDownLatch(threadSize);

  ProModel;

  //设置特定的线程池 大小为

  System out println( begins! );

  ExecutorService exe = Executors newFixedThreadPool(threadSize);

  for(int i= ;i《threadSize;i++)

  exe execute(new ProModel(i+ doneSignal N semaphore));

  try{

  doneSignal await();            //等待end状态变为            }catch (InterruptedException e) {

  // TODO: handle exception

  e printStackTrace();

  }finally{

  System out println( ends! );

  System out println( *(float)ProModel getTotal()/(float)(threadSize*N));

  }

  exe shutdown();

  long end=System currentTimeMillis();

  System out println( used time(ms): +(end begin));

  }

  }

  运行结果比较

   

lishixinzhi/Article/program/Java/gj/201311/27648

JAVA多线程 用两个线协作程完成1---100的加法,线程1完成1--50,线程完成51--100,运算结果却不正确

代码位置放错了吧。。。public void run(){ sum2=0; for(int j=begin2;j《=end2;j++){ sum2+=j; // data.setSum(sum2); //这里的代码去掉 } data.setSum(sum2); //放到这里来}

如果你还想了解更多这方面的信息,记得收藏关注本站。

java多线程计算(JAVA多线程累加)

本文编辑:admin

更多文章:


血战上海滩1单机游戏(单机游戏血战上海滩怎么调无敌模式)

血战上海滩1单机游戏(单机游戏血战上海滩怎么调无敌模式)

本篇文章给大家谈谈血战上海滩1单机游戏,以及单机游戏血战上海滩怎么调无敌模式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录单机游戏血战上海滩怎么调无敌模式血战上海滩哪里下载才是正版血战上海滩怎么设置血战上海滩怎么安装单机游戏

2024年9月3日 09:30

intuitive(intuitive和instinctive的区别)

intuitive(intuitive和instinctive的区别)

各位老铁们,大家好,今天由我来为大家分享intuitive,以及intuitive和instinctive的区别的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始

2024年5月14日 01:21

send的用法?send怎么念

send的用法?send怎么念

各位老铁们,大家好,今天由我来为大家分享send,以及send的用法的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录send的用法send怎么念se

2024年5月27日 21:20

中国卡车模拟6遨游中国2(遨游中国2怎么自己设置起点和终点)

中国卡车模拟6遨游中国2(遨游中国2怎么自己设置起点和终点)

大家好,关于中国卡车模拟6遨游中国2很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于遨游中国2怎么自己设置起点和终点的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮

2024年9月30日 12:02

免费qq靓号申请(qq靓号怎么申请 qq靓号如何申请)

免费qq靓号申请(qq靓号怎么申请 qq靓号如何申请)

这篇文章给大家聊聊关于免费qq靓号申请,以及qq靓号怎么申请 qq靓号如何申请对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录qq靓号怎么申请 qq靓号如何申请如何注册QQ靓号怎么申请qq号靓号,免费申请qq靓号方法QQ靓号怎

2024年7月23日 04:01

csol战术飞刀怎么样 威力 距离如何 值得买吗?csol战术飞刀大概多少钱 韩服卖51RMB的国服大概多少

csol战术飞刀怎么样 威力 距离如何 值得买吗?csol战术飞刀大概多少钱 韩服卖51RMB的国服大概多少

本文目录csol战术飞刀怎么样 威力 距离如何 值得买吗csol战术飞刀大概多少钱 韩服卖51RMB的国服大概多少请问风暴战区战术飞刀怎么玩战术飞刀技巧csol战术飞刀怎么样打僵尸可以吗生化的csol战术飞刀多少钱csol战术飞刀怎么刷cs

2024年2月20日 17:40

java模拟器下载(JAVA模拟器是什么东西啊)

java模拟器下载(JAVA模拟器是什么东西啊)

大家好,java模拟器下载相信很多的网友都不是很明白,包括JAVA模拟器是什么东西啊也是一样,不过没有关系,接下来就来为大家分享关于java模拟器下载和JAVA模拟器是什么东西啊的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开

2024年9月2日 03:20

怎么把手机上的短信下载下来?请把短信下载到桌面

怎么把手机上的短信下载下来?请把短信下载到桌面

本文目录怎么把手机上的短信下载下来请把短信下载到桌面怎样把短信下载到手机上如何下载iphone备份短信为什么手机收到的短信有的需要下载,那是什么短信华为短信图片下载失败怎么把手机短信下载下来短信下载安装到桌面oppo手机短信下载安装信息下载

2024年7月24日 06:38

飞库小说网为什么打不开了?哪个小说软件可以看坠落

飞库小说网为什么打不开了?哪个小说软件可以看坠落

本文目录飞库小说网为什么打不开了哪个小说软件可以看坠落飞库网找不到书谁能帮我找到一个看小说的最佳网址飞库小说网为什么打不开了虽然具体不能解决网站打不开的问题但是如果你要看小说。给你推荐个很好用的东西小说下载阅读器:官方下载:希望对你有帮助!

2024年3月22日 23:46

win8下安装win7(如何在win8下安装win7双系)

win8下安装win7(如何在win8下安装win7双系)

本文目录如何在win8下安装win7双系如何在Win8下安装Win7双系统Win8下怎么安装Win7怎么在win8系统下安装win7(双系统)如何在win8下安装win7双系在Win8下安装Win7双系统步骤如下:准备工具:1、win7系统

2024年5月6日 14:30

snapchat特效相机(snapchat相机特效加载黑屏)

snapchat特效相机(snapchat相机特效加载黑屏)

本篇文章给大家谈谈snapchat特效相机,以及snapchat相机特效加载黑屏对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录snapch

2024年8月8日 17:25

安卓adb驱动(电脑adb驱动怎么安装)

安卓adb驱动(电脑adb驱动怎么安装)

本文目录电脑adb驱动怎么安装adb驱动是什么 安卓adb驱动概念详解如何安装adb驱动 安装adb驱动的方法电脑怎样安装adb驱动安卓手机adb驱动安装失败的几个解决方法安卓手机上的调试工具adb驱动要怎么安装电脑adb驱动怎么安装adb

2024年3月2日 12:40

在哪里可以下载到各种声音?怎么下载声音和音频设备呀

在哪里可以下载到各种声音?怎么下载声音和音频设备呀

本文目录在哪里可以下载到各种声音怎么下载声音和音频设备呀怎么下载声音过年时狗狗听到鞭炮的声音后为什么会吓得四处躲藏我要更换系统声音哪里可以下载好听的系统声音在哪里可以下载到各种声音除了进相关的下载网站下载外还有一个非常强大的方法:其实,只要

2024年3月7日 15:10

安卓软件网站(安卓软件下载网站有哪些)

安卓软件网站(安卓软件下载网站有哪些)

“安卓软件网站”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看安卓软件网站(安卓软件下载网站有哪些)!本文目录安卓软件下载网站有哪些安卓软件下载网站手机app下载平台,手机app最全的下载网站是什么网站安卓安卓手机软件下载网

2024年10月17日 20:25

忍将夙愿付与东流是什么意思、谢谢?忍将现在叫什么名字

忍将夙愿付与东流是什么意思、谢谢?忍将现在叫什么名字

本文目录忍将夙愿付与东流是什么意思、谢谢忍将现在叫什么名字忍将夙愿付与东流是什么意思、谢谢按我自己的意思来解释一下吧:还没成就一番事业,身体已经倍感疲倦,两鬓都花白了;我们难道忍心将期待已久的愿望象东流水一样让它远去,甘愿此生只做泛泛之辈吗

2024年7月23日 21:23

手机qq2011老版本(手机QQ2011版本为什么老是卡机)

手机qq2011老版本(手机QQ2011版本为什么老是卡机)

本篇文章给大家谈谈手机qq2011老版本,以及手机QQ2011版本为什么老是卡机对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录手机QQ20

2024年8月20日 21:55

可以赚钱并提现到微信的游戏(挣钱游戏软件一天赚100微信提现没有广告)

可以赚钱并提现到微信的游戏(挣钱游戏软件一天赚100微信提现没有广告)

大家好,今天小编来为大家解答以下的问题,关于可以赚钱并提现到微信的游戏,挣钱游戏软件一天赚100微信提现没有广告这个很多人还不知道,现在让我们一起来看看吧!本文目录挣钱游戏软件一天赚100微信提现没有广告赚钱游戏哪个赚钱多又安全 可提现微信

2024年6月23日 13:09

电脑用哪个杀毒软件最好用(电脑用什么杀毒软件好)

电脑用哪个杀毒软件最好用(电脑用什么杀毒软件好)

今天给各位分享电脑用什么杀毒软件好的知识,其中也会对电脑用什么杀毒软件好进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录电脑用什么杀毒软件好电脑上什么杀毒软件好电脑用什么杀毒软件好电脑杀毒软件哪个好用电脑杀毒软

2024年10月14日 05:35

lol韩服语音包怎么替换(美服语音包怎么替换)

lol韩服语音包怎么替换(美服语音包怎么替换)

各位老铁们好,相信很多人对lol韩服语音包怎么替换都不是特别的了解,因此呢,今天就来为大家分享下关于lol韩服语音包怎么替换以及美服语音包怎么替换的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录美服语音包怎么替换

2024年8月1日 03:21

oa办公系统怎么注册(怎么样在手机上登录公司的OA办公系统)

oa办公系统怎么注册(怎么样在手机上登录公司的OA办公系统)

“oa办公系统怎么注册”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看oa办公系统怎么注册(怎么样在手机上登录公司的OA办公系统)!本文目录怎么样在手机上登录公司的OA办公系统如何使用OA系统oa办公系统怎么登录oa办公系统

2024年10月17日 09:55

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1735
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索