c语言多线程编程问题
我设立了两个子线程,它们会分别向屏幕打印信息,但因为线程的时间是由系统控制的,所以有时候会出现一个问题,就是我前一个线程要打印123,456,后一个线程要打印789,10...
我设立了两个子线程,它们会分别向屏幕打印信息,但因为线程的时间是由系统控制的,所以有时候会出现一个问题,就是我前一个线程要打印123,456,后一个线程要打印789,101,结果有时候出来的是123,789,101,456。也就是我前一个还没打印完系统就把CPU时间给了令一个线程。如何解决这种问题呢?
展开
1个回答
展开全部
如果针对问的问题来说, 可以考虑使用同步机制. 可以查如mutex等同步机制.
另外, 我会建议...你应该使用单一个服务程序, 用缓存空间去接收要打印的讯息, 单一控制输出萤幕, 这样应该会比较好. 因为萤幕输出只有一个, 多线直接控制, 本来就不好处理. 如果采用传送讯息机制, 应该就有顺序分别, 不易产生问题.
另外, 我会建议...你应该使用单一个服务程序, 用缓存空间去接收要打印的讯息, 单一控制输出萤幕, 这样应该会比较好. 因为萤幕输出只有一个, 多线直接控制, 本来就不好处理. 如果采用传送讯息机制, 应该就有顺序分别, 不易产生问题.
追问
比如:
线程1:
printf("你");
printf(“好”);
如何让这个线程只在打印完“好”之后把时间片交给其它线程,而不是打印完“你”把时间片交给其他线程?
就算用缓存空间去接收也容易出现这个问题啊。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询