GTK+中文社区(gtk.awaysoft.com)

 找回密码
 马上加入

QQ登录

只需一步,快速开始

查看: 4771|回复: 2

GThread 基础功能小记

[复制链接]
  • TA的每日心情
    慵懒
    2013-7-6 15:08
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    发表于 2011-2-21 21:45:00 | 显示全部楼层 |阅读模式
    *个人风格严重的编程笔记,不适合入门用,仅适合参考*
    *参考或许算不上,大概就是个备忘吧*
    *有不懂的或需要详细内容请参考文后给出的_参考文献_*

    *基础使用*
    首先,要加载使用GThread,调用
    1. g_thread_init (NULL); /* 如果非零,首先确认自己在做什么 */
    复制代码
    创建线程,
    1. g_thread_create
    复制代码
    等待线程,
    1. g_thread_join
    复制代码

    一般不会需要从外部结束进程,这因为线程不会影响主线程。
    要从线程内退出线程也就是个return,不需要什么exit。


    *互斥锁*
    互斥锁,意思也就是字面意思(翻译的很巧妙呀)。个人认为一种方法也可以实现互斥锁。
    1. gboolean RUNNING = FALSE;
    2. // ------- 现在在线程内
    3. while (RUNNING) sleep(1);
    4. // 处理函数
    5. }
    复制代码
    g_mutex_lock和g_mutex_trylock的区别
    lock:如果没有锁,锁之;否则,等待另一线程unlock
    trylock:一次性动作。如果没有锁,锁之;否则返回错误信息。
    如果操作结束,一定要g_mutex_unlock,否则会发生无限等待(我也才懂了互斥锁是什么,虽然这种情况很类似传说中的*死锁*,在自己没搞明白前不敢妄下评论。)。

    _参考文献_

    评分

    参与人数 1 +10 收起 理由
    Tom + 10 优秀文章,支持!

    查看全部评分

  • TA的每日心情
    慵懒
    2013-7-6 15:08
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2011-2-21 22:32:47 | 显示全部楼层
    格式化+patched版本:
    http://ekd123.is-programmer.com/posts/24645
  • TA的每日心情
    奋斗
    2021-11-19 13:15
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2011-2-23 05:10:39 | 显示全部楼层
    不错~
    *滑块验证:
    您需要登录后才可以回帖 登录 | 马上加入

    本版积分规则

    申请友链|Archiver|小黑屋|手机版|GTK+中文社区 ( 粤ICP备13080851号 )

    我要啦免费统计

    GMT+8, 2024-12-22 10:53 , Processed in 0.033179 second(s), 8 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表