结构

GLibAsyncQueue

说明 [src]

struct GAsyncQueue {
  /* No available fields */
}

表示异步队列的不透明数据结构。

它只能通过 g_async_queue_* 函数进行访问。

函数

g_async_queue_new

创建一个新的异步队列。

g_async_queue_new_full

创建一个新的异步队列,并设置一个销毁通知函数,该函数用于在对解除最终引用之后销毁队列时释放任何剩余的队列项。

since: 2.16

实例方法

g_async_queue_length

返回队列的长度。

g_async_queue_length_unlocked

返回队列的长度。

g_async_queue_lock

获取 queue 的锁。如果另一个线程已经持有该锁,此调用将阻塞,直到该锁可用。

g_async_queue_pop

queue 弹出数据。如果 queue 为空,此函数将阻塞,直到有数据可用。

g_async_queue_pop_unlocked

queue 弹出数据。如果 queue 为空,此函数将阻塞,直到有数据可用。

g_async_queue_push

data 推入 queue

g_async_queue_push_front

item 推入 queueitem 不得为 NULL。与 g_async_queue_push() 相反,此函数会将新项推送到队列中已有的项的前面,以便它将成为从队列中弹出的下一个项。

since: 2.46

g_async_queue_push_front_unlocked

item 推入 queueitem 不得为 NULL。与 g_async_queue_push_unlocked() 相反,此函数会将新项推送到队列中已有的项的前面,以便它将成为从队列中弹出的下一个项。

since: 2.46

g_async_queue_push_sorted

使用 func 确定新位置,将 data 插入到 queue 中。

since: 2.10

g_async_queue_push_sorted_unlocked

使用 func 确定新位置,将 data 插入到 queue 中。

since: 2.10

g_async_queue_push_unlocked

data 推入 queue

g_async_queue_ref

将异步queue的引用计数加 1。无需持有锁定即可调用此函数。

g_async_queue_ref_unlocked

将异步queue的引用计数加 1。

已弃用:2.8 

g_async_queue_remove

从队列中移除一项。

since: 2.46

g_async_queue_remove_unlocked

从队列中移除一项。

since: 2.46

g_async_queue_sort

使用funcqueue进行排序。

since: 2.10

g_async_queue_sort_unlocked

使用funcqueue进行排序。

since: 2.10

g_async_queue_timed_pop

queue中弹出数据。如果队列为空,则一直阻塞到end_time或直到有数据可用。

已弃用:未知 

g_async_queue_timed_pop_unlocked

queue中弹出数据。如果队列为空,则一直阻塞到end_time或直到有数据可用。

已弃用:未知 

g_async_queue_timeout_pop

queue中弹出数据。如果队列为空,则阻塞timeout微秒,或直到有数据可用。

g_async_queue_timeout_pop_unlocked

queue中弹出数据。如果队列为空,则阻塞timeout微秒,或直到有数据可用。

g_async_queue_try_pop

尝试从queue中弹出数据。如果无数据可用,则返回NULL

g_async_queue_try_pop_unlocked

尝试从queue中弹出数据。如果无数据可用,则返回NULL

g_async_queue_unlock

释放队列的锁定。

g_async_queue_unref

将异步queue的引用计数减 1。

g_async_queue_unref_and_unlock

将异步queue的引用计数减 1 并释放锁定。该函数必须在持有queue的锁定时调用。如果引用计数变为 0,则将销毁queue并释放分配的内存。

已弃用:2.8