函数
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,则必须将其初始化为NULLGError*。如果没有错误,则函数将保留参数未初始化到 NULL。在发生错误的情况下,参数将设置为新的分配的 GError;调用者将获取数据的所有权,并负责释放它。
返回值
类型: GThreadPool
新的 GThreadPool。
| 函数的调用者将获取数据的所有权,并负责释放它。 |