小编jer*_*mie的帖子

scala f-bound类型解释

经过几个例子后,我不得不说,我不明白F-Bounded多态带来了什么.

使用scala学校的示例(https://twitter.github.io/scala_school/advanced-types.html#fbounded)

他们解释说他们需要一些F-Bounded类型,以便子类可以返回子类型.所以他们做这样的事情:

trait Container[A <: Container[A]] extends Ordered[A]
class MyContainer extends Container[MyContainer] {
  def compare(that: MyContainer) = 0
}
Run Code Online (Sandbox Code Playgroud)

但是当我可以使用这样的东西时,我看不出使用这种类型有什么好处:

trait Container[A] extends Ordered[A]
class MyContainer extends Container[MyContainer] {
  def compare(other: MyContainer) = 0
}
Run Code Online (Sandbox Code Playgroud)

任何解释都非常欢迎

谢谢

polymorphism types scala f-bounded-polymorphism

7
推荐指数
1
解决办法
1349
查看次数

java中的同步hashmap写入但不读取

我知道 Java 中的 ConcurrentHashMap 及其众多优点,但我不太清楚为什么像同步 HashMap 这样的实现需要在每个函数调用上同步。

对我来说,感觉就像如果你有一个 HashMap ,其唯一的功能是put(k, v)get(k),那么只有该put函数需要同步,因为即使你在调用后调整 hashMap 的大小put,那么你仍然可以在执行时授予安全的读取访问权限调整大小。读取器线程可以简单地读取调整大小之前的版本。当调整大小完成后,编写器线程将替换引用,以便所有当前调用都get将指向 HashMap 的调整大小版本。

我错过了一些明显的东西吗?

java concurrency multithreading hashmap

5
推荐指数
1
解决办法
1189
查看次数

WeakHashMap和并发修改

我正在阅读有关WeakHashMap的Java Doc ,我得到了基本概念.由于GC线程在后台运行,您可以获得"异常行为",例如迭代时的ConcurrentModificationException等.

我没有得到的是,如果默认实现没有同步并且不以任何方式包含锁,那么为什么不可能获得不一致的状态.假设你有2个主题.GC线程在某个索引处同时并在同一索引处删除某个键,用户线程在该数组中插入一个键值对.

对我来说,如果没有同步,那么获得不一致的哈希映射的风险很高.

更糟糕的是,做这样的事情实际上可能是非常危险的,因为v实际上可能是空的.

if (map.contains(k)) {
   V v = map.get(k)
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

java concurrency multithreading garbage-collection

2
推荐指数
1
解决办法
576
查看次数

列出在 Go 中实现接口的所有类型

我是 Go 的新手,我想知道 Goland 或带有 CLI 工具的方法是否可以列出实现给定接口的所有类型。

我找到了一个名为的工具guru,可以列出给定类型实现的所有接口,但我无法在 CLI 中使用它。

go go-interface go-guru goland

2
推荐指数
1
解决办法
656
查看次数

Go提供与Threadpool等效的功能吗

我来自Java / Scala,最近开始使用Go。在Java / Scala中,线程池非常普遍,并且至少有四个不同的原因将使用它们。

  1. 重用工人已经实例化
  2. 资源管理。当我们有多个线程池时,我们可以确保如果系统的某个部分中发生了突发,那么它不会阻止其他部分的运行。
  3. 自定义我们想要的计划类型(分叉/联接,经典,计划等)
  4. 自定义拒绝策略。

由于Goroutine是如此轻便,因此不需要1,即使提供一个很好,我们也可以创建某种类型的工作程序池而无需过多地麻烦解决2

但是,我觉得在Go中我们不能处理34

是因为不需要它还是仅仅是缺少功能?

concurrency go threadpool goroutine

-3
推荐指数
1
解决办法
88
查看次数