2020-08-13 我会带着你远行 2022-11-27 03:25 52阅读 0赞 # [基于GMainloop的GThread创建、退出与资源释放][GMainloop_GThread] # \_priv->context = g\_main\_context\_new(); \\\\创建一个GMainContext \_priv->mainloop = g\_main\_loop\_new( \_priv->context, FALSE ); \\\\创建一个GMainloop \_priv->thread = g\_thread\_new( "thread", threadEntry, NULL ); \\\\创建一个GThread 2. 线程入口 g\_main\_loop\_run( \_priv->mainloop ); \\\\主要实现,线程等待GSource事件 3. 线程退出与资源释放 在需要终止线程的地方调用如下代码 g\_main\_loop\_quit( \_priv->mainloop ); \\\\GMainloop退出 g\_thread\_join( \_priv->thread ); \\\\重要,等待线程成功退出,glib内部会对GThread的reference count减1,线程资源才会释放 g\_main\_loop\_unref( \_priv->mainloop ); \\\\释放之前创建的GMainloop g\_main\_context\_unref( \_priv->context ); \\\\释放之前创建的GMainContext [GMainloop_GThread]: http://blog.csdn.net/coroutines/article/details/40073437
还没有评论,来说两句吧...