每个连接服务都是多线程的,因此可以支持多个连接。这些连接所需的线程由线程池中的代理来维护。它们的分配方式取决于您指定的最小和最大线程值以及您选择的线程处理模型。
可以设置用来指定最小和最大线程数的代理属性。因为线程是连接所必需的,所以它们将添加到支持该连接的服务的线程池中。最小值指定可供分配的线程的数量。当可用线程超过这个最小阈值时,系统将在线程变为空闲状态时关闭这些线程,直到再次达到最小阈值,以此来节省内存资源。如果负载较重,线程数可能会增加,直到达到线程池的最大数量。此后,新的连接将被拒绝,直到某个线程变得可用。
所选的线程模型可指定线程是专用于单个连接还是由多个连接共享:
在专用模型中,与代理的每个连接都需要两个线程:一个用于传入消息,另一个用于传出消息。这限制了可能的连接数量,但提高了性能。
在共享模型中,当发送或接收消息时,连接由共享线程处理。由于每个连接都不需要专用线程,因此,该模型增加了可能的连接数量,但同时也增加了线程管理开销,从而会影响性能。