首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的隐式和显式并行

Java中的隐式和显式并行
EN

Stack Overflow用户
提问于 2016-01-14 18:05:13
回答 1查看 2.8K关注 0票数 6

一直在研究Java语言中的隐式和显式并发性,经过相当多的研究后,想要澄清一些问题。

  • Java语言中的隐式并行性是否仅通过使用Java 8流来实现?
  • 我认为Java中的显式并行是通过使用程序员编写的线程来实现的,对吗?(隐式并行应该通过编译器而不是程序员编写的代码来实现)?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-15 15:26:38

隐式并行是指编译器在没有程序员“任何”提示的情况下并行执行某些操作的能力。如果要执行的计算具有某些属性(例如,并行作业之间不存在数据依赖),这是可以实现的。

Java流是(引用Oracle的文档)支持顺序和并行聚合操作的元素序列,与集合有根本的不同,因为

1)集合的设计是为了快速访问和操作集合的元素

2) _Stream_s不是要修改的,而是要在源元素和结果元素之间创建一种管道。结果元素是创建的,将一个操作(通常用函数式/lambda样式描述)应用于源。这种计算可以安全地划分为子管道,并以并行方式进行处理。

组成此管道的函数必须具有以下属性: 1)必须是非干扰的(它们不修改流源);2)是无状态的(它们的结果不应取决于在执行流管道时可能发生的任何状态)。请看这里

显式并行(顾名思义)是由程序员实现的,它可以产生与needs.Those元素通常是线程或进程一样多的(计算元素) (请看这里的差别 --这些计算元素同时执行,并由程序员来编排所有操作,以产生正确的结果(例如显式同步线程、交换消息、进行事务操作等)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34796656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档