小编Fai*_*lde的帖子

Null check vs Optional是检查

有人可以解释一下Optional我们如何避免NullPointerException吗?

Optional<String> op = someFunc()
if(op.isPresent()) {
   op.get();
}
String possibleNull = op.get();
Run Code Online (Sandbox Code Playgroud)

这个代码不是很容易出现NullPointerException吗?如果是这样,那么为什么这个代码更受欢迎

String op = someFunc()
if(op != null) {
   op.get();
}
String possibleNull = op;
Run Code Online (Sandbox Code Playgroud)

Optional除了帮助我们了解函数是否实际具有返回值之外,还有什么可能带来的好处

java functional-programming optional java-8

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

网络工作者突然终止

我在chrome上发起了一个web worker,它有一个简单的函数,它被重复调用setTimeout.令人惊讶的是,在调用函数大约1000次之后,Web worker终止了.有谁能解释为什么?我猜chrome正在做一些优化.

webworker.js

function hi() {
    postMessage('1');
    setTimeout(hi, 1);
}
hi();
Run Code Online (Sandbox Code Playgroud)

main.js

var blob = new Blob([code]);
var blobURL = window.URL.createObjectURL(blob);
var worker = new Worker(blobURL);
worker.onmessage = function(data) {
    console.log(data.data); // gets called around 1000 times and done
};
Run Code Online (Sandbox Code Playgroud)

编辑:转载在一个小提琴:http: //jsfiddle.net/meovfpv3/1/ 似乎需要任意长的onmessage回调停止射击,快几秒钟,只要+5分钟

javascript google-chrome worker web

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

RDD在内存中保留多长时间?

考虑到内存有限,我感觉火花会自动从每个节点中删除RDD.我想知道这个时间是可配置的吗?spark如何决定何时从内存中驱逐RDD

注意:我不是在谈论 rdd.cache()

apache-spark rdd

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

我如何实际使用 Raft 算法

在 Raft 论文中,他们提到所有客户端交互都发生在领导节点上。我不明白的是,领导者一直在变化。因此,假设我的集群位于负载均衡器之后。如何通知负载均衡器领导者已更改?或者,如果我是对的,负载均衡器是否可以向任何节点(跟随者或领导者)发送客户端请求,并且跟随者节点有责任将请求发送给领导者?

distributed cluster-computing raft

6
推荐指数
1
解决办法
1316
查看次数

CPU如何重新排序指令

我最近读到了关于CPU指令重新排序的效率.但我无法理解CPU如何重新调整其指令.我的意思是编译时重新排序是可以想象的,因为编译器可以预见即将到来的代码.但对于一个接一个地读取指令的CPU,它如何看待即将重新排序的指令

cpu assembly multithreading

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

原子广播和共识之间的区别

共识涉及所有机器就价值达成协议。原子广播还说,发出味精的过程应全部或不被同意。

那么区别是什么呢?

distributed-system consensus

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

Elasticsearch must 子句比过滤器快

我们使用elasticsearch 7.2,最近我们一直在观察一些奇怪的事情

我们尝试执行以下两个查询

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "customer(keyword_field)": "big_customer"
          }
        }
      ]
    }
  }
}

{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "customer(keyword_field)": "big_customer"
          }
        }
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这匹配大约 100 万个文档。第一个比第二个快(快 10 倍!)。由于得分,我预计 1 会更慢

另外,当我添加排序时,它们都变慢了(第二个保持不变,第一个变得和第二个一样慢)

performance elasticsearch

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

在 Erlang 中发送大消息时,您是否有触发竞争条件的风险?

在 Erlang 中,如果两个进程 A 和 B 同时向进程 C 发送消息。会有竞争条件吗?

  • C !{非常大的消息}由A发送
  • C !{非常大的消息}由B发送

C 会收到来自 A 的完整消息,然后继续处理来自 B 的消息吗?还是 C 可能会同时收到 A 的消息块和 B 的消息块?

erlang messaging process

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

两种通用协议和TCP握手

因此,这两个普遍的问题表明,没有确定性的方式来知道我们通过不可靠的渠道与之通信的另一方是否已收到我们的消息。这与我们发送一个syn syn ack ack并建立连接的TCP握手非常相似。这不反对这两个一般性问题吗?

tcp handshake

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

Javascript关闭不按预期工作

我在nodejs上运行此代码.我想知道为什么闭包执行时不打印字符串'Globals'?是不是this在关闭指向全球范围?

// Running on NodeJS, not in a browser!
this.name = "Globals";

function Person(name) {
  this.name = name;
  this.namePrinter = function() {
    return function() {
      console.log(this.name);
    }
  }
}

var p = new Person("Faiz");
p.namePrinter()(); // prints undefined. Shouldn't it print Globals?
console.log(this.name); // prints Globals
Run Code Online (Sandbox Code Playgroud)

javascript closures scope node.js

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