写两个线程交替打印a和b
很久之前看到一道题: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个不同的代码来,抛砖引玉吧,大家有时间可以想想,把自己的代码贴出来,不用很完整的代码,随手把关键点贴出来就可,交流下不挺好。
是我的问题太easy了还是太无趣了,没人参与啊。哎 除了同步,还有什么好的方法呢
页:
[1]