我刚刚意识到死锁 - 即它们是什么 - 我担心这个问题会影响我的Rails代码。
在开发Rails应用程序时是否需要注意特定的死锁问题?
您是否曾在Rails代码中遇到过死锁 - 或者甚至是可能的?
(我不是指数据库死锁 - 只是应用程序死锁)。
答案 0 :(得分:2)
死锁意味着竞争I / O资源,这就是为什么它最常出现在数据库中的原因。如果您不正确地锁定和请求资源并且您明确使用线程,那么您需要关注。
但是,缓解任何问题的具体步骤取决于您访问的I / O类型。
答案 1 :(得分:0)
Rails没有很多操作系统级死锁问题,因为Ruby 1.8是单线程的,即使在1.9中也是锁定的
关注点主要在数据库中。 Rails有一个双重打击,其中ActiveRecord从数据库中抽象出来,像FK这样的东西和约束被推送到应用程序级验证(before_save,validates_ *等),结果不鼓励开发人员考虑数据库死锁情况。
如果你正在使用MYSQl,你可以在这里阅读有关innodb的问题区域(Rails中的默认值)http://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-model.html