很好的使用线程?

我有一套非常昂贵的操作,但都非常独立。 其中一些依赖于一些“全球”国家或数据,但都是非常只读的。 我相当肯定的操作本身都可以并行完成,但是所有的操作都需要在程序前进到某一点之前完成。

在这里增加multithreading的额外工作和危险是值得的,特别是因为主线程将不得不阻塞并等待呢?

其他问题是,这个应用程序很可能必须在Windows和Linux上运行,我不确定这是值得使用两个不同的线程系统添加代码的复杂性。

除非你的工作线程是一些不能获得并行化好处的病态情况,否则它们可能比串行更快完成并行。 所以,这个价值是否值得的问题将成为多少时间才能节省下来,以及在上下文中对您有多大的价值。 如果有蚂蚁的用户在等待鼠标点击来做点什么,那么10秒内节省5分是一个有意义的好处。 一个cron工作同样节省,而不是太多。

如果你觉得有一个很好的机会,它会做一些有用的东西,建立一个快速的测试版本和配置文件

那么,第一个问题是:你真的有问题吗?

这听起来像是你可以合理安全和有效地并行化,但如果实际上不是一个等待操作顺序执行的问题 ,那么可能不值得担心。

如果这是一个一夜之间执行的批处理应用程序,则可能不值得这样做。 但是,如果这是一个面向用户的应用程序,并且用户正在厌倦等待,那么听起来好像使用多线程来解决这个问题是值得的。

你所描述的是一个并发的障碍 ,在很多类型的应用程序中都很流行。

不管它是否适合你的应用,都很难说没有更多的细节。

如果你有多核处理器,那么你可能能够同时运行线程并通过并行来获得加速。

不过,我相信线程的主要用途是允许多个逻辑操作链更容易编写,特别是如果它们涉及等待外部事件(如用户输入或I / O完成)。