Writing Future Rotating Header Image

Posts on ‘February 20th, 2010’

小心多线程开发

程序如果特别复杂,特别是做Server的程序,不可避免的需要利用多线程来提高运行效率,就不可避免的会遇到多线程开发一些常见的问题:

为了能合理的使用共享资源,必须利用锁机制;
滥用了锁机制,就会增加deadlock的风险,且不容易发现。

写多线程程序,特别需要小心翼翼,首先应当尽量减少共享资源。锁不可避免的时候,尽量减少在锁内部的工作量,临界区越少越好。最好避免锁内代码再去获取其他锁!如果你还是不可避免的这样做了,需要确保这样做的正确性。随意加锁来保持线程安全事实上是一种很危险的做法。