线程化套接字服务ThreadedSocketService

自2.22开始

[]

描述 [代码]

class Gio.ThreadedSocketService : Gio.SocketService
{
  priv: GThreadedSocketServicePrivate*
}

GThreadedSocketServiceGSocketService 的一个简单子类,处理传入的连接是通过创建一个工作线程,并通过在新的线程中发出 [信号 @Gio.ThreadedSocketService::run] 信号将连接调度到该线程。

信号处理器可能会执行阻塞I/O,并且不需要在连接关闭之前返回。

服务使用线程池实现,因此可用于服务传入请求的线程数量有限。当所有线程都忙碌时,服务会自动阻止 GSocketService 接受新的连接。

GSocketService 一样,您可以连接到 GThreadedSocketService::run 或子类并覆盖默认处理器。

自2.22可用

[]

构造函数

g_threaded_socket_service_new

创建一个新的、不带监听器的 GThreadedSocketService。必须使用 GSocketListener 的某种 "add" 方法添加监听器。

自2.22开始

[]

实例方法

GSocketService 继承的方法(3个)
GSocketListener 继承的方法(12个)
GObject继承的方法(43)
[]

属性

Gio.ThreadedSocketService:max-threads

为此服务处理客户端的最大线程数。

自2.22开始

GSocketService继承的属性(1)
GSocketListener继承的属性(1)
[]

信号

Gio.ThreadedSocketService::run

当响应传入连接时,在工作线程中发出::run信号。该线程专用于处理connection,可能执行阻塞IO。信号处理器需要在连接关闭之前不返回。

GSocketService继承的信号(1)
GSocketListener继承的信号(1)
GObject继承的信号(1)

类结构

[]

虚拟方法