小编Mat*_*roh的帖子

gen_server:cast to gen_server:abcast有什么区别?

当寻找abcast abcast手册页,
cast 投手册页,我不明白什么是这两个之间的区别.
有人可以向我澄清这一点.

谢谢

erlang erlang-otp gen-server

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

我如何暂停然后恢复对“睡眠”的呼叫

呼唤 sleep(10)意味着睡眠指定的秒数。当我键入“ sleep 10”时,我想等待10秒,但是当我SIGTSTP在sleep命令之后立即使用CTRL-Z(或发送)时,即使该过程也不会停止“ timer”(或计数器)已经停止。

我可以看到jobs状态sleep更改为,STOPPED但是如果我等待10秒钟,然后将此过程发送到前台,它将,即使它运行的时间少于10秒钟,立即完成

因此,我的问题是如何停止睡眠计时器的运行?

更新 ::我现在了解睡眠使用的是时钟时间,因此如何使用用户cpu时间实现睡眠

c linux bash time sleep

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

在cpython中的_math.c中的ln2 const值

我在git(第25行)看_math.c:

#if !defined(HAVE_ACOSH) || !defined(HAVE_ASINH)
static const double ln2 = 6.93147180559945286227E-01;
static const double two_pow_p28 = 268435456.0; /* 2**28 */
Run Code Online (Sandbox Code Playgroud)

我注意到ln2值与ln2的wolframalpha值不同.(光头部分是差异)

ln2 = 0.693147180559945 286227(cpython)

ln2 = 0.693147180559945 3094172321214581(wolframalpha)

ln2 = 0.693147180559945 309417232121458(维基百科)

所以我的问题是为什么会有区别?我错过了什么?

python cpython

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

在Erlang示例中安全使用

我正在学习Erlang,我看到了一个" 安全使用 "
的例子,这是首选"安全使用"的例子

better(N) ->
X = case N of
  1 -> 1;
  _ -> 0
end,
X.
Run Code Online (Sandbox Code Playgroud)

也是一个安全但不好的例子

bad(N) ->
  case N of
    1 -> X =1;
    _ -> X = 0
  end,
X.
Run Code Online (Sandbox Code Playgroud)

我理解这两个的功能(看起来和我一样),但我无法理解是什么让第一个功能变得更好,第二个功能更糟糕?

erlang

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

在变量和erlang中"直接"传递的消息

我在O'Reilly的"软件开发的并行方法"一书中读到了,
在第93页中有一些"消息传递"的例子.

1> Pid = self().
<0.30.0>
2> Pid ! hello.
hello
3> <0.30.0> ! hello.
* 1: syntax error before: '<'
Run Code Online (Sandbox Code Playgroud)

问题是我不明白为什么会出现语法错误,因为当我输入时1> Pid. 我会得到结果<0.30.0>,那么第2行和第3行之间的区别是什么(期望它是变量的事实)?

erlang pid sendmessage

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

如何重置/清除erlang终端

我试图让提示重置,忘记所有变量并从第1行开始提示>
我知道以下内置函数

f().                      %% forget all
io:format("\e[H\e[J").    %% "clear screen" and moving cursor to the begin of the line
Run Code Online (Sandbox Code Playgroud)

但是当我编写以下命令时,它确实忘记了所有变量,但它不会"重置"屏幕,只是清除屏幕,就像clear终端中的命令一样.

在Linux中,我只是键入reset,但我找不到等效的命令或内置函数为erlang做到这一点.

我也试过,io:format(os:cmd("reset")). 但收到了错误.

我现在的解决方案是退出erlang终端,然后重新打开它,但我确信有更简单的方法可以做到这一点.

terminal erlang reset

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

标签 统计

erlang ×4

bash ×1

c ×1

cpython ×1

erlang-otp ×1

gen-server ×1

linux ×1

pid ×1

python ×1

reset ×1

sendmessage ×1

sleep ×1

terminal ×1

time ×1