c语言多线程编程问题

我设立了两个子线程,它们会分别向屏幕打印信息,但因为线程的时间是由系统控制的,所以有时候会出现一个问题,就是我前一个线程要打印123,456,后一个线程要打印789,10... 我设立了两个子线程,它们会分别向屏幕打印信息,但因为线程的时间是由系统控制的,所以有时候会出现一个问题,就是我前一个线程要打印123,456,后一个线程要打印789,101,结果有时候出来的是123,789,101,456。也就是我前一个还没打印完系统就把CPU时间给了令一个线程。如何解决这种问题呢? 展开
 我来答
johnwanz
2015-05-18 · TA获得超过781个赞
知道小有建树答主
回答量:716
采纳率:80%
帮助的人:234万
展开全部
如果针对问的问题来说, 可以考虑使用同步机制. 可以查如mutex等同步机制.

另外, 我会建议...你应该使用单一个服务程序, 用缓存空间去接收要打印的讯息, 单一控制输出萤幕, 这样应该会比较好. 因为萤幕输出只有一个, 多线直接控制, 本来就不好处理. 如果采用传送讯息机制, 应该就有顺序分别, 不易产生问题.
追问
比如:
线程1:

printf("你");

printf(“好”);
如何让这个线程只在打印完“好”之后把时间片交给其它线程,而不是打印完“你”把时间片交给其他线程?
就算用缓存空间去接收也容易出现这个问题啊。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式