0

我刚刚意识到死锁 - 即它们是什么 - 我担心这个问题会影响我的 Rails 代码。

在开发 Rails 应用程序时,是否有任何特定的死锁问题需要注意?

你有没有在你的 Rails 代码中遇到过死锁——或者这可能吗?

(我指的不是数据库死锁——只是应用程序死锁)。

4

2 回答 2

2

死锁意味着对 I/O 资源的竞争,这就是为什么它最常出现在数据库中的原因。如果您不正确地锁定和请求资源并且您明确使用线程,那么您需要关注。

但是,缓解任何问题的具体步骤取决于您访问的 I/O 类型。

于 2009-09-01T08:12:05.463 回答
0

Rails 没有太多操作系统级别的死锁问题,因为 Ruby 1.8 是单线程的,即使在 1.9 中也是锁定的

关注点主要在数据库中。Rails 有双重打击,ActiveRecord 从数据库中抽象出来,并将 FK 和约束之类的东西推入应用程序级别的验证(before_save、validates_* 等),结果阻止了开发人员考虑 DB 死锁情况。

如果您使用的是 MYSQl,您可以在此处http://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-model.html阅读有关 innodb 的问题区域(Rails 中的默认设置)

于 2010-09-15T02:12:21.033 回答