求助mina框架线程池的线程数怎么确定中自建线程过多即连接限制无效问题

MINA可以由我们添加一个线程池的线程数怎么确定如果没有的话,它会自己产生一个线程池的线程数怎么确定供自己使用mina的效率还是很不错的。我们可以发现setHandler时候只添加一个IoHandler的对象,也就是说整个服务器程序只有一个处理器实例。那么就很容易产生线程安全的问题,因为服务器程序是高并发的一對多的。

原来他们是被用来被其他的外壳来调用这几个实例的方法使用的时候将不同的参数传递给IoHandler等实例的public方法,这样避免为不同的连接new一样的处理器虽然会产生一些问题。可以确定IoSession是多实例的因此我们可以好好利用它的setAttribute方法来保存我们希望下一次还能使用的对象。仔细想想这和Servlet的那中使用多线程(Web容器),单实例(Servlet实例)的模式是多么的相似

         以上是我的小小总结,有的同学可能会问:为什么不使用synchronized服务器程序要求的是效率,高并发但是你加一个互斥,这个。。。你懂的

Mina的多线程模式——节选自设计文檔

由于本项目使用的 Apache Mina 的框架进行网络通信当然其多线程模式也应该

在 Mina 框架中体现出来。

为了理解多线程模式首先要了解 Mina 的运作方式。

此次便于解说假设客户端也是采用了 Mina 框架来进行,实际上本项目的客户端只是简单的使用了windows 的 Socket 通信在当前假设下,其通信过程如下图 16 所示

本项目只关注服务端,其服务端的通信过程如下:

的 IoFilter IoFilter 进行消息的过滤,格式的转换在这个层面可以制定一些自定义的协议;

线程池的线程数怎么确定多线程處理如何快速的拿到结果不阻塞
分两种一种按顺序拿取结果一种有结果就返回获取

看结果显而易见 ,一个是按照顺序获取一个是谁先完荿获取谁

我要回帖

更多关于 线程池的线程数怎么确定 的文章

 

随机推荐