免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1706 | 回复: 2
打印 上一主题 下一主题

[进程管理] 写两个线程交替打印a和b [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-04-29 15:07 |只看该作者 |倒序浏览
很久之前看到一道题:
1. 写两个线程交替打印字符‘a'和字符’b'
2. 要尽量效率高,尽量少的利用cpu资源。

当时觉得很简单,我觉得我当时的写法会是:
thread1_start()
{
    while(true)
    {
        if(a)
        {
             printf("a\n");
             a =0;
             b =1;
        }
    }
}

thread2_start()
{
    while(true)
    {
        if(b)
        {
             printf("b\n");
             b =0;
             a =1;
        }
    }
}

当然上述写法正确性绝对没问题。但无端浪费多少cpu资源啊,想想真是惭愧。

现在再回想起来,想了好多方案,最后发现牵扯知识点好多,我依然写不出更好的,更加惭愧啊。想100个人会写出100个不同的代码来,抛砖引玉吧,大家有时间可以想想,把自己的代码贴出来,不用很完整的代码,随手把关键点贴出来就可,交流下不挺好。

论坛徽章:
0
2 [报告]
发表于 2016-04-30 18:27 |只看该作者
是我的问题太easy了还是太无趣了,没人参与啊。哎

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
3 [报告]
发表于 2016-05-03 10:03 |只看该作者
除了同步,还有什么好的方法呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP