作者gpmm (银色)
看板PHP
标题Re: [请益] 物件中的物件表示法
时间Thu Mar 21 13:36:14 2013
: //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
1F:推 dlikeayu:这我也有点小疑问,因为很多设计模式都是C和Java来的 03/21 15:23
2F:→ dlikeayu:其实用到双重锁定在各OO语言应该就很足够且省资源 03/21 15:23
3F:→ dlikeayu:加上synchronized是可保障那几兆分之一的出错 03/21 15:24
4F:→ dlikeayu:在Java多加这一动保护是占什麽资源,PHP的sem 就不太熟了 03/21 15:28
5F:→ gpmm:模式本身没问题啊,是语言特性,PHP 在一般情况下一个 client 03/22 02:30
6F:→ gpmm:就是一个单一的执行环境,不太有机会在不同 client 之间共用 03/22 02:32
7F:→ gpmm:资源,不是说不行,只是机会很少,因为每个 client 的执行 03/22 02:33
8F:→ gpmm:周期都太短,真的有共同用到资源的部份也是往外抓 daemon 03/22 02:34
9F:→ gpmm: service 居多,像 db / memcache 等等 03/22 02:34
10F:→ gpmm:竞争都由各个 service 自己处理掉了,所以 PHP 相对就,不太 03/22 02:35
11F:→ gpmm:要在意这个 03/22 02:35
12F:→ gpmm:当然还是有适合的情景啦,例如要写一个精准的 pv counter, 03/22 02:36
13F:→ gpmm:如果用档案来做的话应该就要用类似的方式来避免互盖 :Q 03/22 02:39
14F:→ dlikeayu:印象好像是有浏览器外挂能把多分页弄成一request 03/22 04:49
15F:→ dlikeayu:另外就是websocket 03/22 04:52
16F:→ dlikeayu:这方面我也得再学习厘清一下>< 03/22 04:53