小编Rau*_*aul的帖子

Go是否支持易失/非易失性变量?

我是这个语言的新手,所以请耐心等待.

我很好奇GO如何处理线程可用的数据存储,因为非局部变量也可以是非易失性的,例如在Java中.

GO具有通道的概念,通过它的本质 - 线程间通信,意味着它绕过处理器高速缓存,并直接读取/写入堆.

另外,在go lang文档中没有找到对volatile的任何引用.

go

17
推荐指数
4
解决办法
5326
查看次数

番石榴缓存与ehcache基准测试

我正在尝试决定在我的项目中使用这两个中的哪一个:guava cache或ehcache.寻找轻量级服务级别缓存解决方案.我搜索了一些基准测试,但找不到任何基准测试.

如果您有方便的基准,请在此处发布.

干杯.

java benchmarking ehcache guava

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

在Scala中实现Go的并发模式难吗?

毫无疑问,Go的语法比Scala简单得多.它的语言功能也较少.我非常喜欢用Go编写并发代码的简易性.

事实证明,高性能代码是无阻塞代码(请参阅http://norvig.com/21-days.html#Answers),Go和Scala都非常擅长这一点.

我的问题是如何通过实现相同的并发模式,如何在Scala中编写与Go程序完全相同的程序.我想到的第一件事就是以与Channels类似的方式使用Futures.

我在找

  • Scala中Go的并发模式的可能实现
  • 如果Go构造很难在Scala中完全模拟
  • 代码片段

任何帮助深表感谢.

[编辑] Go并发模式的几个例子 http://talks.golang.org/2012/concurrency.slide

扇入

func fanIn(input1, input2 <-chan string) <-chan string {
  c := make(chan string)
  go func() {
    for {
      select {
        case s := <-input1:  c <- s
        case s := <-input2:  c <- s
      }
    }
  }()
  return c
}
Run Code Online (Sandbox Code Playgroud)

超时粒度(一个频道与整个对话)

在多个实例之间复制服务调用并返回第一个实例的值以进行响应.(这是使用一捆模式)

全部用:没有锁.没有条件变量.没有回调.(Scala期货使用回调)

concurrency scala go

7
推荐指数
2
解决办法
1841
查看次数

是否可以使用合并排序对堆栈进行排序?

堆栈可以实现为链表.链接列表可以使用合并排序进行排序:O(n log n)时间O(n)空间

能够使用合并排序对堆栈进行排序是有意义的.

如果是这样的话,代码会是什么样子?

(在网上快速搜索后,我才发现蛮力算法O(n ^ 2))

sorting algorithm

4
推荐指数
1
解决办法
730
查看次数

Scala的内部类和Java的内部/嵌套类之间有什么区别?

Scala如何以不同于Java的嵌套,静态或非静态类的方式处理内部类?

java oop scala

4
推荐指数
2
解决办法
910
查看次数

包含所有英文单词的前缀树(trie)的大小是多少?

知道英语词典中有大约200k字,字母表中有26个字母左右.

trie data-structures

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