函数
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
。
函数的调用者将获取数据的所有权,并负责释放它。 |