JAVA 100道题(21)

21.编写一个Java程序,使用多线程实现两个数的同时累加。

在Java中,我们可以使用多线程来实现两个数的同时累加。下面是一个简单的示例,其中创建了两个线程,每个线程负责累加不同的数字。

请注意,此示例假设我们要同时累加两个独立的数字序列,而不是同一个数字序列。如果需要同时累加同一个数字序列,那么需要更多的同步机制来避免数据竞争和不一致。

 

java复制代码

public class SimultaneousAddition {
private static final int NUM_THREADS = 2;
private static final int MAX_VALUE = 1000000; // 假设我们要累加的数字范围
private static volatile long sum1 = 0;
private static volatile long sum2 = 0;
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
for (int i = 0; i < MAX_VALUE; i++) {
sum1 += i;
}
});
Thread thread2 = new Thread(() -> {
for (int i = MAX_VALUE; i >= 0; i--) {
sum2 += i;
}
});
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Sum 1: " + sum1);
System.out.println("Sum 2: " + sum2);
}
}

在这个程序中,我们创建了两个线程,thread1thread2thread1从0开始累加,直到MAX_VALUE,而thread2则从MAX_VALUE开始递减,直到0。我们使用了volatile关键字来确保sum1sum2的可见性,这样当一个线程修改这些变量的值时,其他线程可以立即看到这些变化。

我们使用join()方法等待两个线程都完成执行。然后,我们打印出两个线程各自计算出的和。

请注意,这个程序并没有处理可能出现的并发问题,因为sum1sum2的累加操作并不是原子的。在实际情况中,如果需要对共享数据进行复杂的并发操作,你可能需要使用更复杂的同步机制,如synchronized块、ReentrantLockAtomicLong等。然而,在这个特定的例子中,由于每个线程都在操作自己的独立变量,所以我们不需要额外的同步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ZZULIOJ】1008: 美元和人民币(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 美元越来越贬值了&#xff0c;手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币&#xff0c;编写程序输入美元的金额&a…

【实体字段校验:@NotNull、@NotEmpty、@NotBlank详解】

文章目录 前言1. NotNull1.1 什么是NotNull&#xff1f;1.2 使用步骤1.2.1 引入依赖1.2.2 在字段上添加注解 1.3 示例代码1.4 应用场景 2. NotEmpty2.1 什么是NotEmpty&#xff1f;2.2 使用步骤2.2.1 引入依赖2.2.2 在字段上添加注解 2.3 示例代码2.4 应用场景 3. NotBlank3.1 …

VLAN实验记录---对抗遗忘

sw1的接口6应该调成混杂模式&#xff0c;因为pc2,4,5,6的pvid各不相同而网段相同&#xff0c;所以往上去路由时应该剥离标记&#xff08;VLAN里面是标记而不是标签&#xff09;出去&#xff0c;这样 路由器上的物理接口用来管理不带标记的流量&#xff0c;而vlan2流量的往上打上…

记录 AI绘图 Stable Diffusion的本地安装使用,可搭建画图服务端

开头 最近刷短视频看到了很多关于AI绘图&#xff0c;Midjourney&#xff0c;gittimg.ai&#xff0c;Stable Diffusion等一些绘图AI工具&#xff0c;感受到了AI绘画的魅力。通过chatGPT生成关键词再加上绘图工具&#xff0c;真是完美&#xff0c;文末教大家如何用gpt提词 Midj…

解决Windows Edge兼容性问题:一站式修复指南

解决Windows Edge兼容性问题&#xff1a;一站式修复指南 1. 引言1.1. Windows Edge的重要性1.2. 面对兼容性挑战 2. Windows Edge简介2.1. Windows Edge的特点2.2. 兼容性挑战 3. Windows Edge兼容性问题诊断3.1. 识别问题3.2. 检查系统更新 4. Windows Edge兼容性问题修复4.1.…

每日算法之接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1…

打造核心竞争力:高效Web系统数据中台的设计与实践_光点科技

在数字化的浪潮中&#xff0c;数据已经成为企业赖以生存和发展的核心资源。一个高效的Web系统数据中台&#xff0c;能够赋予企业在激烈的市场竞争中立于不败之地的能力。本文将深入探讨如何设计和实施一个能够提升企业数据管理水平和支持业务决策的高效数据中台架构。 数据中台…

【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

P8623 [蓝桥杯 2015 省 B] 移动距离 Python

[蓝桥杯 2015 省 B] 移动距离 题目描述 X 星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为 $1,2,3, \cdots $ 。 当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。 比如&#xff1a;当小区排号宽度为 6 6 6 时&#xff0c;开始情形如…

腾讯云优惠券领取及使用常见问题解答

随着云计算的普及&#xff0c;腾讯云作为国内领先的云计算服务提供商&#xff0c;为越来越多的企业和个人提供了丰富的云产品和服务。为了帮助用户更好地了解和使用腾讯云优惠券&#xff0c;本文将为大家解答关于腾讯云优惠券领取及使用的常见问题。 一、腾讯云优惠券概述 腾讯…

Centos7 安装一个ftp服务

在CentOS 7上安装和配置FTP服务器的步骤如下: 安装vsftpd: sudo yum install vsftpd启动vsftpd服务: sudo systemctl start vsftpd设置vsftpd在系统启动时自动启动: sudo systemctl enable vsftpd配置vsftpd: sudo vi /etc/vsftpd/vsftpd.conf在vsftpd.conf文件中,你可以进行各…

软件设计师24--概念设计阶段

软件设计师24--概念设计阶段 考点1&#xff1a;概念设计过程考点2&#xff1a;E-R图属性E-R模型-联系类型判断例题&#xff1a;E-R模型-联系类型判断扩充的E-R模型 考点1&#xff1a;概念设计过程 需求分析 --> 抽象数据 --> 设计局部ER模型 --> 合并局部模型消除冲突…

Java封装、继承、多态和抽象深度解析

在软件工程的世界里&#xff0c;面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;它使用“对象”来设计软件。对象可以封装数据和方法&#xff0c;以提高代码的复用性、可维护性和可扩展性。Java作为一门面向对象的编程语言&#xff0c;提供了四个基本的面向…

二维前缀和与二维差分的表示

前缀和&#xff1a; 上述图片是求范围内的总和的图和公式 上述图片是初始化前缀和数组的图和公式 差分&#xff1a; 上图是差分公式 #include<iostream> #include<climits> #include<algorithm> #include<cstring> #include<cstdio> #include&l…

vue 借助vue-amap插件对高德地图的简单使用

需求&#xff1a;实现点击获取经纬度、定位、对特殊位置标点及自定义信息窗体功能。 高德地图的官网API&#xff1a;概述-地图 JS API 1.4 | 高德地图API vue-amap的中文文档&#xff1a;组件 | vue-amap 实现&#xff1a; 1、安装vue-amap插件 npm install vue-amap --save…

代码随想录第23天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 669. 修剪二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 你修剪的方式不对&#xff0c;我来给你纠正一下&#xff01;| LeetCode&#xff1a;669. 修剪二叉搜索树_哔哩哔哩_bilibili 给你二叉搜索树的根节点 root …

大数据之scala

为什么学习scala spark是新一代内存级大数据计算框架&#xff0c;是大数据的重要内容 spark就是使用scala编写的&#xff0c;因此为了更好的学习spark&#xff0c;需要掌握scala这门语言 spark的兴起&#xff0c;带动scala语言的发展 scala发展历史 联邦理工学院的马丁 奥德…

【卡梅德生物】哺乳动物表达常用的细胞系简介

在哺乳动物细胞表达系统中&#xff0c;受体细胞是用于表达外源基因或蛋白质的宿主细胞。哺乳动物细胞在重组蛋白的生产中起着至关重要的作用&#xff0c;并且选择哺乳动物细胞是综合有效表达外源基因、支持适当的蛋白质折叠和翻译后修饰以及提供高蛋白质产量的能力等因素。以下…

2024年腾讯云服务器价格表,2核4G5M带宽165元一年

2024年腾讯云服务器价格表&#xff0c;2核4G5M带宽165元一年&#xff0c;配置&#xff1a;轻量应用服务器、2核4G5M、5M带宽、500GB月流量、上海/广州/北京、60GB SSD云硬盘、165元一年&#xff0c;252元15个月、900元3年。 腾讯云服务器有两个活动&#xff0c;一个是官方的主…

17.注释和关键字

文章目录 一、 注释二、关键字class关键字 我们之前写的HelloWorld案例写的比较简单&#xff0c;但随着课程渐渐深入&#xff0c;当我们写一些比较难的代码时&#xff0c;在刚开始写完时&#xff0c;你知道这段代码是什么意思&#xff0c;但是等过了几天&#xff0c;再次看这段…