函数

GLibThreadPoolnew_full

自 2.70

声明 [源]

GThreadPool*
g_thread_pool_new_full (
  GFunc func,
  gpointer user_data,
  GDestroyNotify item_free_func,
  gint max_threads,
  gboolean exclusive,
  GError** error
)

描述 [源]

此函数创建一个新的线程池,类似于g_thread_pool_new(),但允许指定 item_free_func 以在 GThreadPool 停止和释放之前所有任务都执行完毕的情况下释放传递给 g_thread_pool_push() 的数据。

item_free_func 将不会在成功传递给 func 的项目上调用。 func 负责释放传递给它的项目。

自 2.70 起可用

此函数对语言绑定不可直接使用。

参数

func

类型: GFunc

一个在新的线程池线程中执行的函数。

user_data

类型: gpointer

每次调用时都传递给 func 的用户数据。

该参数可以是 NULL
数据归函数的调用者所有。
item_free_func

类型: GDestroyNotify

用于传递给 g_async_queue_new_full() 的释放函数。

max_threads

类型: gint

新线程池中可以同时执行的最大线程数,-1 表示无限制。

exclusive

类型: gboolean

此线程池是否应该是独占的?

error

类型: GError **

用于可恢复错误的返回位置。

该参数可以是 NULL
如果返回位置不为 NULL,则必须将其初始化为 NULL GError*
如果没有错误,则函数将保留参数未初始化到 NULL
在发生错误的情况下,参数将设置为新的分配的 GError;调用者将获取数据的所有权,并负责释放它。

返回值

类型: GThreadPool

新的 GThreadPool

函数的调用者将获取数据的所有权,并负责释放它。