我正在使用从我的C ++应用程序中的第三方SO文件导出的API。第三方API正在将一些消息写入我的unix控制台。我假设API使用多线程的概念,因为我可以发现进入控制台的输出是混合的(从我的程序输出以及从第三方API输出),如下所示:
My program
I am an API
My I am an program API
是否有任何方法可以将这两个消息分开? 第三方SDK文档不提供任何错误/消息处理机制或任何线程同步机制。
有人可以帮忙吗?
答案 0 :(得分:0)
线程输出同步和缓冲必须在输出它的应用程序级别上完成。你得到的已经是交错的,不能合理地分开。所有线程/进程都写入相同的文件描述符(更糟糕的是,如果它们使用stdout
,它们每个都有自己的输出缓冲区),所以如果该应用程序没有调度它们的输出消息,那么设计就会被破坏你可以做的很少。
它是什么类型的应用程序?如果它是一个shell脚本包装器,则有可能在顶部完成并行化,并且可以正确地进行反汇编和缓冲。