原因: 不想考虑数据竞争的问题了, 因为人永远考虑不周全, 所以让机器处理才是合理的
1
thinkm 207 天前
不用 Golang 的人,注定只能度过一个相对失败的人生
|
2
williamshan 207 天前 via Android
@thinkm 怎么讲
|
3
sherlockwhite 207 天前
有什么数据竞争的实例吗
|
4
sherlockwhite 207 天前
想不通从一个相对简单的语言转到一个复杂的语言就是因为数据竞争,不太懂是什么逻辑
|
5
march1993 207 天前
让机器处理太简单了,所有数据加个锁就完事儿了,但是这样做性能太差了。golang 的套路是让你通过 chan 去通信、同步,而不是靠 sync.*。并且 rust 也没有在语法层面提供同步的办法啊。
|
7
chaleaochexist 207 天前
这种帖子吧。。。 就是收币的, 得,5 铜币奉上, 不谢!
|
8
minami 207 天前
这么不喜欢锁怎么不去写单线程的 js ,是不喜欢吗
|
9
smallboy19991231 207 天前
@williamshan 有句原話是 不用 Mac 的人,注定只能度过一个相对失败的人生
|
11
standchan 207 天前
用 chan 去通信,而不是传统的锁。
|
12
xwhxbg 207 天前 1
冷知识,chan 内部自带一个锁
|
13
lsk569937453 207 天前
@proxyai
rust 不是银弹。 我在用 rust 实现 redis 的过程中对比了 mpsc::channel 和 Arc::Mutex 的性能。 单线程下,两者性能差不多的。 多线程下,全局 Arc::Mutex 对数据加锁的性能还比 mpsc::channel(多生产者单消费者)好一点 https://github.com/lsk569937453/rcache/tree/main:全局锁 https://github.com/lsk569937453/rcache/tree/0.0.1:mpsc::channel 实现的多生产者单消费者模型 |
14
ShuWei 206 天前
你确定自己能受得了 rust 的折磨?
|
15
fregie 206 天前
这有什么好选的,本身就是为了不同场景而设计的不同语言,在不同领域各有优势
|
16
nebkad 206 天前
欢迎新的 Rustacean~!
Rust 是否能够有效减少锁使用,对这个问题有怀疑的程序员朋友们,可以尝试挑战一下实现这个。 在假定使用者不能使用 unsafe 或者别的魔法的情况下,设计一个既可用于多线程,又可以用于单线程的支持异步操作的 ring buffer ,其隐含的约束或者需求是:只允许有一个写入端和一个读取端 我用 C# golang C++ Rust 都试过。 结论就是 Rust 确实不需要额外加锁,仅仅依靠类型系统在编译时就能保证使用者一定满足上述约束。 其他语言只能通过额外对 ring buffer 加锁保证,或者只能靠文档保证。 |
17
qianjian 206 天前
我纯纯什么都不懂,翻了挺多帖子和讨论,但还是不了解 rust 主攻的场景是什么,感觉什么都能写,但感觉没有哪一块领域属于提起它就想到 rust 。
|
18
nebkad 206 天前
|
19
uiiytwyfsdtr 198 天前
rust is not that good but a lot more better than c++ thats for sure
|