我以为我可以用一块石头杀死两只鸟,并通过转换以下示例代码(取自http://blog.smartbear.com/programming/an-introduction-to-the-go-language)自学 Go 和 Erlang -boldly-going-where-no-man-has-ever-gone-before/ ) 从 Go 到 Erlang:package mainimport ( "fmt" "time")type Ball struct{ hits int }func main() { table := make(chan *Ball) go player("ping", table) go player("pong", table) table <- new(Ball) // game on; toss the ball time.Sleep(1 * time.Second) <-table // game over; grab the ball}func player(name string, table chan *Ball) { for { ball := <-table ball.hits++ fmt.Println(name, ball.hits) time.Sleep(100 * time.Millisecond) table <- ball }}然而我失败了。该代码基本上创建了一个共享计数器(球)并在两个 goroutine(玩家)之间来回发送它。到目前为止一切顺利。但是我如何在 Erlang 中做类似的事情呢?我的问题是:如何在 Erlang 中创建计数器?Erlang 似乎不允许在设置后更改变量的值。如何在两个 erlang 进程之间共享这样的计数器?
1 回答
- 1 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消