讀“Rails 2.2 新特性提示”的疑惑與解析
今天在javaeye讀Rails 2.2 新特性提示 的時(shí)候,由于對(duì)于ROR沒有知識(shí)儲(chǔ)備和認(rèn)識(shí),所以對(duì)如下文產(chǎn)生了疑問
我的疑惑是
一直很疑惑,仔細(xì)想了想,慢慢推導(dǎo)
在看到文中
從而印證了自己的想法,得解
Rails的ActionController是每次HTTP請(qǐng)求創(chuàng)建實(shí)例的,因此本身就支持多線程運(yùn)行;而ActiveRecord是單實(shí)例的,因此之前的版本不支持多線程。而Rails2.2改寫了ActiveRecord相應(yīng)的實(shí)現(xiàn),使得ActiveRecord是線程安全的了
我的疑惑是
而ActiveRecord是單實(shí)例的,因此之前的版本不支持多線程。
-------------
單實(shí)例,就意味著不能多線程么?
public class SimpleSingleton {
private static final SimpleSingleton instance = new SimpleSingleton ();
public static getInstance(){return instance;}
}
這個(gè)怎么能不支持多線程呢?
-------------
單實(shí)例,就意味著不能多線程么?
public class SimpleSingleton {
private static final SimpleSingleton instance = new SimpleSingleton ();
public static getInstance(){return instance;}
}
這個(gè)怎么能不支持多線程呢?
一直很疑惑,仔細(xì)想了想,慢慢推導(dǎo)
從 single-thread 到 multi-thread 的難點(diǎn)在于thread security
而activerecord是單例,不支持multi-thread, 意味著它肯定有很多私有屬性
從而是非線程安全的
所以改進(jìn):
1) 要么是改成每次創(chuàng)建新的
2) 要不就是去掉私有變量,而以參數(shù)形式重新構(gòu)造
而activerecord是單例,不支持multi-thread, 意味著它肯定有很多私有屬性

所以改進(jìn):
1) 要么是改成每次創(chuàng)建新的
2) 要不就是去掉私有變量,而以參數(shù)形式重新構(gòu)造
在看到文中
使得ActiveRecord是線程安全的了
從而印證了自己的想法,得解
posted on 2008-10-27 23:20 crazycy 閱讀(1207) 評(píng)論(1) 編輯 收藏 所屬分類: JavaEE技術(shù)