Re: [請益] 物件中的物件表示法

看板PHP作者 (銀色)時間12年前 (2013/03/21 13:36), 編輯推噓1(1015)
留言16則, 2人參與, 最新討論串5/5 (看更多)
: //factory setting : //這邊有用到JAVA的雙重鎖定檢查 : //另外還加了synchronized的方式(不過不知道php有沒有效減少資源) : public static function getInstance() : { : if (self::$instance === NULL) : { : //TODO sem muilt process set : $SEMKey = "99999"; : //TODO sem muilt process start : sem_acquire($seg); : if (self::$instance === NULL) : { : self::$instance = new self; : } : sem_release($seg); : } : return self::$instance; : } 這… singleton / factory 是很好用沒錯, 但是這個 instance resource 除非是可共用的競爭性 resource , 不然抓到 semaphore 去跑好像有點… XDD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.172.175.174

03/21 15:23, , 1F
這我也有點小疑問,因為很多設計模式都是C和Java來的
03/21 15:23, 1F

03/21 15:23, , 2F
其實用到雙重鎖定在各OO語言應該就很足夠且省資源
03/21 15:23, 2F

03/21 15:24, , 3F
加上synchronized是可保障那幾兆分之一的出錯
03/21 15:24, 3F

03/21 15:28, , 4F
在Java多加這一動保護是佔什麼資源,PHP的sem 就不太熟了
03/21 15:28, 4F

03/22 02:30, , 5F
模式本身沒問題啊,是語言特性,PHP 在一般情況下一個 client
03/22 02:30, 5F

03/22 02:32, , 6F
就是一個單一的執行環境,不太有機會在不同 client 之間共用
03/22 02:32, 6F

03/22 02:33, , 7F
資源,不是說不行,只是機會很少,因為每個 client 的執行
03/22 02:33, 7F

03/22 02:34, , 8F
週期都太短,真的有共同用到資源的部份也是往外抓 daemon
03/22 02:34, 8F

03/22 02:34, , 9F
service 居多,像 db / memcache 等等
03/22 02:34, 9F

03/22 02:35, , 10F
競爭都由各個 service 自己處理掉了,所以 PHP 相對就,不太
03/22 02:35, 10F

03/22 02:35, , 11F
要在意這個
03/22 02:35, 11F

03/22 02:36, , 12F
當然還是有適合的情景啦,例如要寫一個精準的 pv counter,
03/22 02:36, 12F

03/22 02:39, , 13F
如果用檔案來做的話應該就要用類似的方式來避免互蓋 :Q
03/22 02:39, 13F

03/22 04:49, , 14F
印象好像是有瀏覽器外掛能把多分頁弄成一request
03/22 04:49, 14F

03/22 04:52, , 15F
另外就是websocket
03/22 04:52, 15F

03/22 04:53, , 16F
這方面我也得再學習厘清一下><
03/22 04:53, 16F
文章代碼(AID): #1HIfnHgC (PHP)
文章代碼(AID): #1HIfnHgC (PHP)