What have you found for these years?

2009-01-31

multi-threaded and side-effect (2)

後來又翻到 ruby-core 上面討論 require 的 thread-safety 問題,
然後又翻了點關於 locking 的討論與文章,尤其是這一篇,
Programming with POSIX(R) Threads 的作者 David Butenhof
所寫的一小段關於 recursive mutexes:

Re: recursive mutexes

總有種越看越恐怖的感覺,當我們提出一個解決辦法,進而就會衍生另一個問題,
還有個什麼鬼 livelock... 不禁讓我覺得,使用 mt 大概必然要考慮以下:

1. 沒有過於複雜的交錯存取

2. 只使用 scoped lock. 例如 C++ auto(stack) object,
ensure/finally block, etc.

3. 不使用 recursive mutex...

只要違反其中一項,或許就該考慮重新設計程式架構,
不然錯路會越走越深... 當然,如果只是要應急的話,那又是另一回事。

或許 locking 要當作大絕招,而 recursive mutex 更是大絕招中的大絕招 @_@
concurrency 應該還有其他更好的路可以走,不需要把複雜度弄到那麼誇張。
好的設計應該是抽象而單純,而非愚笨又複雜。

mac firefox 又沒辦法打中文了.... 真是有夠煩的。

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0