1 线程池的设计
目标:面向消息处理的线程池。需要一定量的缓冲区,要有流量检测和过载告警。要尽可能的高效。
设计要点:
1,每个线程有一个自己的队列,线程从队列中读取消息进行处理。
2,自己编程实现队列,减少运行时的内存分配和释放操作。
线程池由以下几类线程组成:
1,接收线程。用于从网络或其他来源接收消息。收到消息以后,分发给线程池里的工作线程。分发的算法,由应用自己决定。
2,工作线程。从自己的线程队列里读取消息后进行处理。
3,发送线程。工作线程如果要发送消息,就把消息放入发送线程的队列,由发送线程发送到相应的目的地。工作线程也可以不通过发送线程,直接向外发送消息。这种情况下,就不需要发送线程。但如果几个工作线程共用相同资源发送消息,通过发送线程发送效率更高。
4,线程池:线程池用于管理所有工作线程。接收线程通过线程池知道把分发到哪个工作线程。