我使用用于 GUI 的 wxWidgets 和 IBM ILOG Cplex 用 C++ 编写了一个工具来解决优化问题。
在 wx 事件处理程序调用的函数之一中,我调用了 IBM ILOG Cplex Optimizer,它本身就是多线程代码。
我意识到这会导致带有无意义的内存内容的不确定性错误。
由于我没有编写多线程代码的经验,并且想在不花三周时间学习如何做的情况下离开,我想知道:
是否有一些安全的,可能不优雅的方法来避免这里的问题?(也许比将文件写入磁盘、通过操作系统调用不同的任务并将输出读回更优雅)。
从 wx 线程启动 Cplex 线程是不是一个坏主意?
使用两个可能在内部使用不同库来实现多线程的库通常是一个坏主意吗?(我不知道除了 pthreads 以及 cplex 或 wx 使用什么之外还有什么)。
任何帮助和背景信息表示赞赏。