【发布时间】:2013-04-16 01:41:28
【问题描述】:
我用 C++ 编写了一个工具,使用用于 GUI 的 wxWidgets 和 IBM ILOG Cplex 来解决优化问题。
在 wx 事件处理程序调用的函数之一中,我调用了 IBM ILOG Cplex Optimizer,它本身就是多线程代码。
我意识到这会导致内存内容无意义的不确定性错误。
由于我没有编写多线程代码的经验,并且想不花三周时间学习如何去做,我想知道:
是否有一些安全的、可能不优雅的方法来避免这里的问题? (也许比将文件写入磁盘、通过操作系统调用不同的任务并将输出读回更优雅)。
从 wx 线程启动 Cplex 线程是不是一个坏主意?
使用两个可能在内部使用不同库来实现多线程的库通常是个坏主意吗? (我不知道除了 pthreads 以及 cplex 或 wx 使用什么之外还有什么)。
感谢任何帮助和背景信息。
【问题讨论】:
-
我一般不知道如何回答您的问题,但您可以通过 IntParam Threads 控制 CPLEX 使用的线程数。
标签: c++ multithreading wxwidgets cplex