Fork/Join和Map/Reduce之间的主要区别是什么?
它们的分解和分布类型(数据与计算)有何不同?
阅读Java的ConcurrentLinkedQueue Docs,我想知道为什么实现不可能存储大小:
请注意,与大多数集合不同,size方法不是恒定时间操作.由于这些队列的异步性质,确定当前元素数量需要遍历元素.
凡来源是这样的"异步性"?我只看到一个while循环来重试排队,直到AtomicReferences匹配预期的值/引用.为什么size:AtomicInteger
在成功向队列提供值后无法增加?
非常感谢.
我有一个异步控制流,如下所示:
ActorA ! DoA(dataA, callback1, callbackOnErrorA)
def callback1() = {
...
ActorB ! DoB(dataB, callback2, callbackOnErrorB)
}
def callback2() = {
ActorC ! DoC(dataC, callback3, callbackOnErrorC)
}
...
Run Code Online (Sandbox Code Playgroud)
我如何将这个流划分为几个部分(延续),并在保持整体状态的同时将这些部分顺序分配给不同的参与者(或线程/任务)?
任何提示都表示赞赏,谢谢
术语"频道"和"流"之间是否存在概念上的差异?这些条款是否要求/确定,例如,允许的并发消费者或生产者数量?
我目前正在开发DataFlowVariables的Channel/Stream,它可以由一个生产者编写并由一个消费者读取,因为实现是破坏性/可变的.这将是一个频道或流,是否有任何差异?
谢谢
如果在CPS上下文中有以下类(@cps [Unit]),我将如何实现Seq-trait?我是否必须将Seq等标准特征放在一边,只需在cps-context中实现map,flatmap和foreach?
class DataFlowVariable[T] {
def apply(): T @cps[Unit] = ...
}
class DataFlowStream[T] extends Seq[T] {
override def iterator: Iterator[T] = new Iterator[T] {
private val iter = queue.iterator
def hasNext: Boolean = iter.hasNext
def next: T = { // needed: next: T @cps[Unit] !
val dfvar = iter.next
// dfvar() // not possible as dvar.apply has type "T @cps[Unit]"
}
}
}
Run Code Online (Sandbox Code Playgroud) 我现在正在努力解决以下问题一周,需要一些建议.
def query(title: String): List[Search] // query("Terminator") => ["Terminator I", "Terminator II", "Terminator 1984", etc...]
def searchIMDB(s: Search): List[SearchResult]
def searchTMDB(s: Search): List[SearchResult]
def filterRedundantSearchResults(sr: SearchResult): Option[SearchResult]
def fetchIMDB(sr: SearchResult): List[MetaInfo]
def fetchTMDB(sr: SearchResult): List[MetaInfo]
def consolidate(infos: List[MetaInfo]): List[List[MetaInfo]]
Run Code Online (Sandbox Code Playgroud)
我想构建一个像以下一样的管道:
query("Terminator")
-> [askIMDB, askTMDB, ...]
-> filterRedundantSearchResults (already-searched-state per query)
-> [fetchIMDB, fetchTMDB, ...]
-> consolidate (collected-meta-infos-state per query)
=> List[ TerminatorI-List[MetaInfo], TerminatorII-List[MetaInfo], ...]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经将每个Pipeline-Segment都实现为Actor.我需要为每个Query创建专用的actor实例,因为像filterXXX和mergeate这样的一些actor需要维护每个查询的状态.
像askIMDB这样的函数会产生多个我希望同时处理的结果(每个结果都是一个单独的actor).所以我没有找到任何方法在执行query()之前预构建actor的整个图形,也没有在运行时修改它的优雅方法.
我的第一次尝试是一系列演员,并在消息中传递像Transaction-ID,所以每个Actor都有一个Map [TransactionID-> State],但这感觉相当难看.第二个尝试是创建一个排序管道,将演员的有向图抽象为一个流,但到目前为止我失败了.
这是我的第一篇文章,对不起,如果我忘记了某些内容或问题是一般/伪编码.任何建议非常感谢.谢谢!
是否可以创建自定义别名注释来代替
@SuppressWarnings("unused") // EventBus
public void onEvent(SomeMessage msg) { ... }
Run Code Online (Sandbox Code Playgroud)
喜欢
@EventBusListener
public void onEvent(SomeMessage msg) { ... }
Run Code Online (Sandbox Code Playgroud)
这将是更多的自我记录,当然应该包括 SuppressWarnings ......对不起,如果这微不足道,但到目前为止我的谷歌搜索失败了。
使用java.nio,必须通过SelectableChannel注册操作的兴趣:
SelectionKey = SelectableChannel.register(selector, interestInOpsBitmask)
Run Code Online (Sandbox Code Playgroud)
注册兴趣:
取消注册兴趣:
有任何利弊吗?
谢谢
我想要一个提供最多X个线程来处理任务的线程池,到目前为止没问题.但是,每个提交的任务都可以指定特定限制的IO目标(比如Y).
因此,提交的IOTask以限制4(Y)返回目标"google.com",并且池具有全局限制16(X).我想提交10个google.com-tasks,其中只有4个并行处理,并且该池有12个线程可用于其他任务.
我怎样才能做到这一点?
有很多像这样的集成测试实现:
// no @Annotations at all
class SomeIntegrationTest extends AbstractIntegrationTest {
...
}
Run Code Online (Sandbox Code Playgroud)
使用(Spring Boot 1.5,JUnit 5)
@SpringBootTest(classes = {CoreConfiguration.class, RestTemplateAutoConfiguration.class, JacksonAutoConfiguration.class})
@ExtendWith(SpringExtension.class)
@AutoConfigureMockMvc
@Transactional
public abstract class AbstractIntegrationTest {
...
}
Run Code Online (Sandbox Code Playgroud)
这总是失败
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'javax.persistence.EntityManagerFactory' available
Run Code Online (Sandbox Code Playgroud)
除非我注释每个IntegrationTest-Implementation
@EnableAutoConfiguration
class SomeIntegrationTest extends AbstractIntegrationTest {
...
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我不能@EnableAutoConfiguration
在AbstractIntegrationTest
并用它做。(这样做时,它失败了IllegalArgumentException: No auto-configuration attributes found. Is package.SomeIntegrationTest annotated with EnableAutoConfiguration?
)
我们正常的应用程序看起来像这样:
@SpringBootApplication
@Import({CoreConfiguration.class, OtherConfiguration.class})
public class WebApp {
Run Code Online (Sandbox Code Playgroud)
这里@SpringBootApplication
显然暗示, @EnableAutoConfiguration …
来自我的另一个问题 是有一种方法来获取构造函数的名字参数吗?我需要一种方法来提供一个代码块,它在对象内部按需/延迟/按名称执行,这个代码块必须能够访问类方法,就像代码块是类的一部分一样.
以下Testcase失败:
package test
class ByNameCons(code: => Unit) {
def exec() = {
println("pre-code")
code
println("post-code")
}
def meth() = println("method")
def exec2(code2: => Unit) = {
println("pre-code")
code2
println("post-code")
}
}
object ByNameCons {
def main(args: Array[String]): Unit = {
val tst = new ByNameCons {
println("foo")
meth() // knows meth() as code is part of ByNameCons
}
tst.exec() // ByName fails (executed right as constructor)
println("--------")
tst.exec2 { // ByName works
println("foo")
//meth() // does not …
Run Code Online (Sandbox Code Playgroud) 我想在文本中搜索字符串"W foo X bar Y baz Z".W,X,Y,Z是不重要的分隔符,我不能搜索它们.foo,bar和baz是我感兴趣的词.订单并不重要.我想知道文本中出现的所需词语"好".
我正在尝试以下方面
(?:\Qfoo\E)?.{0,3}(?:\Qbar\E)?.{0,3}(?:\Qbaz\E)?
Run Code Online (Sandbox Code Playgroud)
我的理由是:
此正则表达式始终匹配,因为它只包含可选组,但结果匹配始终为空,即使它可以完全匹配所有可选组.但是,我想对结果匹配进行后期处理,因此我需要尽可能多地捕获它.
我可以强制正则表达式尝试尽可能匹配所有组吗?
或者您是否知道如何搜索多个单词,由某些单词分隔,然后检查哪些单词出现以计算某些相似性?
非常感谢你
我在java脚本中使用module-via-anonymous-function-pattern来创建一个匿名函数,该函数体现整个模块并通过设置全局属性公开特定的公共API部分.
我尝试了几种设置这种全局属性的方法,下面发布的第二种方法失败了:
window.foo = (function() {
function bar() { this.hello = "world" }
return new bar();
})();
> foo.hello
"world" // OK
Run Code Online (Sandbox Code Playgroud)
与
(function() {
window.foo2 = new bar( this.hello = "world" );
function bar() {}
})();
> foo2.hello
undefined // Fail
Run Code Online (Sandbox Code Playgroud)
为什么第二种方法没有创建一个合适的条形对象?
scala ×6
java ×5
concurrency ×3
constructor ×2
scala-2.8 ×2
actor ×1
annotations ×1
channel ×1
fork-join ×1
global ×1
javascript ×1
mapreduce ×1
nio ×1
object ×1
pass-by-name ×1
pipeline ×1
pool ×1
queue ×1
regex ×1
selector ×1
size ×1
spring-boot ×1
stream ×1
terminology ×1