2012/5/13 Sun Ning <class...@gmail.com>:
��������ǰ��װ�Ķ�д������Ҫ���ο����Ǻǣ�����ò�ƶ�¥�����ⲻ����ʲô�������⣬��֪¥���Ƿ��ǹ�Ӧ�ð�IO�ŵ�һ�������Ĺ����߳��У������߳�ͨ����Ϣ���к��¼��ɷ�����Эͬ�����ҵ������������ ��ܶ��Dz��������ģʽ��ƣ����ܸܺߣ����һ��ܴ�����̴߳����ĸ����ԡ�
�� 2012��5��14�� ����11:31��naitong Xiao <xiaon...@gmail.com>д ����
���û���ֱ����java�������ļ�double checkһ��Ӧ�����ܲ�����̫��Ӱ�죬�Ͼ���������̫���
��Robert Luo�ᵽ��locking��, �������£�
(let [reconnect-lock (Object.)]
(defn reconnect [channel]
(if (channel-closed? channel)
(locking reconnect-lock
(if (channel-closed? channel)
(do-reconnect channel))))))
�� 2012��5��14�� ����10:35��dennis zhuang <killm...@gmail.com>д ����
agent Ҳ�����⣬�������ÿ��ƣ���Ϊÿ��action�������̳߳���ִ�У��������������������һ�����send- off����send-off��action����һ��û�����ƴ�С��cache thread pool��ִ�У�ͬʱִ�е�action��࣬�����̹߳�࣬Ӱ�����ܺ��ڴ�״����
�� 2012��5��14�� ����10:02��Sun Ning <class...@gmail.com>д ����
promise �ҿ��ǹ���Ҳ�����⡣
�����������Ҫ����̵߳���ͬһ��promise�ϣ����߰�connect�����ɹ��� channel deliver��ÿ���̵߳�promise�ϡ������ַ�ʽ��clojure�ﶼ�� ���Ѷȡ�
ȷʵ�������������agent���һ�㣺
At any point in time, at most one action for each Agent is being executed.
����һ�����ڵ�ͬ�����ƣ�����ǰû��ע�
On Mon 14 May 2012 09:49:39 PM CST, Robert Luo wrote:
lock �ǵײ���ƣ�clojure �ṩ�� locking �꣬����˵���������Ȼ��ͬ����
��֮һ��ֻ������ڴ����Ӧ�ó�������������ϸ�����׳���Ļ��Ʋ�����
�ѣ�����˵����ͬ��������Ϊϣ����⾫ϸ���������ṩ�ĸ�߲�ij���
�����������Ƿ������ promise �����?����߳̽����������������ɹ���
ʹ�� deliver ������������� promise ���߳̽������磺
(defn ready-channel [channel]
(let [ch (promise)]
(.start (Thread. #(do (check-and-reconnect channel) (deliver ch
channel))))
ch))
(defn safe-write [channel data]
(when-let [ch (ready-channel channel)]
(real-write @ch data)))
On Sunday, May 13, 2012 11:14:13 PM UTC+8, Sun Ning wrote:
����������һ���������о�clojure�ṩ�Ļ��ƱȽ��Ѵ��?
����һ�������netty�ͻ��� channel�����ж���߳�һ��д����ÿ��write
֮ǰ��
�������״̬������Ѿ�ʧЧ����Ҫ������
������ʱ�����������ǣ�ֻ��һ���߳�����ִ���������������̱߳�
blockס
ֱ�����ӳɹ���
���ҵ�2009��Stuart Halloway��һ���ʼ����ᵽ�ľ��������������ʱ��
��û��
�˻ش�
--
Sun Ning
Software developer
Nanjing, China (N32��3'42'' E118��46'40'')
http://about.me/sunng/bio
--
ׯ����