1.1 相关函数简介
下面给出了zebra关于线程管理的相关函数的简要功能介绍。
1.1.1 thread_master_create ()
为创建一个新的thread_master结构体动态开辟一块内存空间。
1.1.2 thread_list_add ()
在list双向链表尾部插入一个新的thread。
1.1.3 thread_list_add_before ()
在函数参数point所指向的thread前面插入一个新的thread。
1.1.4 thread_list_delete ()
删除参数中指定的thread。
1.1.5 thread_add_unuse ()
向指定thead_master中的unused链表尾部插入新thread。
1.1.6 thread_list_free ()
从内存中释放掉指定thread_master中的指定thread链表所占空间。
1.1.7 thread_master_free ()
彻底释放指定thread_master所占内存空间。
1.1.8 thread_trim_head ()
若指定thread链表中非空,删除该链表头指针所指thread,并将其返回,即从线程队列中取出一个线程。
1.1.9 thread_empty ()
判断指定thread链表是否为空。
1.1.10 thread_timer_remain_second ()
得到指定线程的剩余时间。
1.1.11 thread_get ()
若指定thread_master中的unuse链表非空,从该队列中取出一个thread,根据参数初始化并返回之。否则,给该thread_master多开辟一块空间给新的thread,根据参数初始化该thread并返回之。
1.1.12 thread_add_read ()
根据所给参数在指定thread_master中添加并初始化一个read类型的thread并返回之。
1.1.13 thread_add_write ()
根据所给参数在指定thread_master中添加并初始化一个write类型的thread并返回之。
1.1.14 thread_add_timer ()
根据所给参数在指定thread_master中添加并初始化一个timer类型的thread。若timer链表不要求排序,则直接返回新thread,若要求排序,则将新thread插入到队列的相应位置后再返回之。
1.1.15 thread_add_event ()
根据所给参数在指定thread_master中添加并初始化一个event类型的thread并返回之。
1.1.16 thread_cancel ()
删除指定thread,删除后将其类型置为THREAD_UNUSED,并将其插入到该thread_master的unuse链表中。
1.1.17 thread_cancel_event ()
将指定thread_master的event链表中与参数中arg相匹配的thread删除。
1.1.18 thread_timer_wait ()
找出指定thread_master的timer链表中最小的剩余时间并将其返回。
1.1.19 thread_run ()
将指定thread的值赋给thread类型的fetch,然后将其类型置为THREAD_UNUSED,并将其插入unuse链表,返回fetch。
1.1.20 thread_process_fd ()
将指定thread链表中的元素取出插入到该thread_master的ready链表中,返回该链表中插入元素的个数。
1.1.21 thread_fetch ()
若指定thread_master的event队列非空取出其头元素并用run函数处理。取出并用run函数处理timer队列中每一个之前创建的线程。若指定thread_master的ready队列非空取出其头元素并用run函数处理。拷贝该thread_master的文件描述符。将read和write链表插到ready链表中,再从ready链表取头元素用run函数处理。如此无限循环下去直到所有进程都处理完。
1.1.22 thread_consumed_time ()
得到该进程所耗费的时间。
1.1.23 thread_call ()
执行该thread中的功能函数,如果该thread持续时间超过CPU规定的独占时间,发出警告。
1.1.24 thread_execute ()
根据参数创建一个event类型的thread并用thread_call()函数对其进行处理。