原来不开线程串行运行时是正常的,开线程调用后出现的问题。 在库函数代码很少,printf次数很少(一两次)时偶尔不会崩溃,代码量较多时必崩。 输出的浮点型变量是库里的全局变量,试了下用%d输出全局int变量是正常运行的,但是用%f输出double变量就不行。 请问可能是什么原因及其解决方法。
其实不是崩溃,而是俞渝printf不是原子操作,可以再操作过程种被截拳线程,或者标准输出(或文件)是同一个而且也不是原子操作。解决办法是给输出加锁,避免并发输出。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632