dazuiniu's blog

cat /dev/dazuiniu/random

Archive for the ‘thread’ tag

多线程安全

View Comments

多线程的开发与调试总是很困难的。因为他的不确定性,比如你的一个变量,在线程A的函数中可以使用,也可以同时在线程B的函数中被修改,由于两者的调用时机完全无法确定,因此增加了多线程的程序的维护与开发的难度。

大嘴牛采用了 active object 与 message passing 两种方式相结合的方式来从某种程度上缓解多线程编写的难度。

对于需要修改的类,可以封装成一个单独的线程,所有对于类下面数据的修改都通过消息方式进行传递,因此,其他线程想要进行修改,必须发送消息来进行。

问题还是存在的。比如你的读数据。如果你可以忍受读出脏的数据,那么没问题,这种模式比较合适你。否则还是乖乖的使用锁进行数据保护吧。

Written by dazuiniu

November 20th, 2010 at 1:00 pm

Posted in all about dev

Tagged with ,

基于事件和基于线程的编程模型

View Comments

如果不需要考虑多个连接的问题,而且一个连接所做的处理是计算密集型,那么每一个连接对应一个线程是最好的方式。但是如果有许多连接,并且每个连接的时候很短,而且都是非阻塞的处理,那么基于事件方式的处理就会具有更好的扩展性。

[1]. Threads with Events

Written by dazuiniu

June 22nd, 2010 at 8:03 pm

Posted in all about dev

Tagged with , ,