当前位置: 首页 > news >正文

网站系统正在升级维护网络推广主要是做什么工作

网站系统正在升级维护,网络推广主要是做什么工作,国际跨境电商有哪些平台,优质的网站建设流程还在用 for 循环计算两个数之间所有数的和吗?下面提供两种新方法! 1. ForkJoin 1.1 背景 要知道,在一个方法中,如果没有做特殊的处理,那么在方法开始到结束使用的都是同一个线程,无论你的业务有多复杂 那…

还在用 for 循环计算两个数之间所有数的和吗?下面提供两种新方法!

1. ForkJoin

1.1 背景

要知道,在一个方法中,如果没有做特殊的处理,那么在方法开始到结束使用的都是同一个线程,无论你的业务有多复杂
那么就有人在想,能不能在一个方法里使用多个线程来完成一个复杂的业务?

ForkJoin 拆分合并
在一定程度上满足了上述的场景,使用 ForkJoin 后,可以根据自己的需要将一个任务拆分为多个任务;当多个任务都执行完后,再将结果汇总返回

1.2 实例

比如:我现在要计算 1~1000000000 之间所有数的和

继承 RecursiveTask 并行任务类,编写对应的计算方法

public class ForkJoinDemo extends RecursiveTask<Long> {private Long start;private Long end;private Long temp = 1000L; // 临界值public ForkJoinDemo(Long start, Long end) {this.start = start;this.end = end;}@Overrideprotected Long compute() {if ((end - start) < temp) {// 数据量不大就不必拆分任务Long sum = 0L;for (Long i = start; i <= end; i++) {sum += i;}return sum;} else {long middle = (start + end) >>> 1; // 中间值ForkJoinDemo task1 = new ForkJoinDemo(start, middle);task1.fork(); // 拆分任务,把任务压入队列ForkJoinDemo task2 = new ForkJoinDemo(middle+1, end);task2.fork(); // 拆分任务,把任务压入队列// 合并结果return task1.join() + task2.join();}}
}

编写测试类调用上面的方法

public class DemoTest01 {public static void main(String[] args) throws Exception {ForkJoinPool forkJoinPool = new ForkJoinPool();ForkJoinTask<Long> task = new ForkJoinDemo(0L, 10_0000_0000L);ForkJoinTask<Long> submit = forkJoinPool.submit(task);Long sum = submit.get();System.out.println("sum = " + sum);}
}

1.3 注意点

细心的人应该会看到,本人在计算中间值时,使用了位运算
并不是因为显得很厉害,而是因为之前踩过坑

细想,如果是 int 类型的话,(start + end) / 2 ;乍一眼看上去好像没什么问题
但我们都知道 int 的最大值是 2147483647。如果 start = 2147483645,end = 2147483645,虽然 start 和 end 都没有超出最大值,但是如果加起来的话就会造成溢出,从而导致中间值计算错误

所以也是提醒大家,越是简单的问题越容易被忽略

2. Stream 并行流

如何使用 Stream 并行流实现计算 1~1000000000 之间所有数的和
一行代码解决!

public class DemoTest01 {public static void main(String[] args) throws Exception {// rangeClosed 前开后闭 (]long sum = LongStream.rangeClosed(0L, 10_0000_0000L).parallel().reduce(0, Long::sum);System.out.println("sum = " + sum);}
}
http://www.yayakq.cn/news/802841/

相关文章:

  • 做图书馆网站wordpress 插件发文章
  • 嘉兴做网站的上海网站建设推
  • 移动路由器做网站服务器吗惠州seo推广外包
  • 做个进出口英文网站多少钱开发小程序定制软件
  • 天津和平做网站哪家好做商城网站的公司推荐
  • 自己怎样建企业网站2020最成功的网络营销
  • 虹口区建设工程管理网站成都互联网公司数量排名
  • 烟台企业网站建设公司网站开发还是软件开发
  • 如何建设网站吸引人wordpress 书店
  • 验证网站所有权网站建设三大部分
  • 安徽省建设厅安全协会网站安康市滴滴公司电话
  • 网站如何做ip签名图片长安微网站建设
  • 网站建站前期准备工作如何做好网站的推广工作
  • 一级A视网站 一级做爰片网页设计与网站建设
  • 云服务器网站解析长春财经学院宿舍图片
  • 湘潭网站建设选择湘潭振企网站建设外包加工网可信吗
  • 做电商看的网站有哪些内容站群系统程序
  • 网站建设仟金手指专业12it需要什么学历
  • 网站建设实训小组报告广告片制作哪家好
  • 企业网站营销百度排名优化专家
  • 做网站制作外包西安营销型网站建设
  • 重庆网站建智慧团建官方登录
  • 网站建设及推广费记什么科目网络规划设计师资料
  • 基本网站建设技术做电工的有接单的网站吗
  • 衡水seo_衡水网站建设-燕丰收学室内设计网站
  • 高端网站建设公司好不好做创业网站赚钱
  • 免费推广网站推荐手机网站建设收费
  • 网络界面设计长沙网站seo服务
  • 杞县网站建设在线友情链接
  • 淮安汽车集团网站建设宁波网络公司设计装修