我启用了编译器优化,我的多线程C程序积极破坏,我可以读到的任何文章?

Sam*_*rch 0 c compiler-construction optimization multithreading mingw

我正在使用MinGW,它是Windows的gcc.我的程序涉及多个窗口,两个不同的主线程,以及线程池中的多个工作线程,用于重叠的网络I/O.

无需编译器优化即可完美运行.

A)编译器优化是否必要?我的节目已经很快了.是否它可能会提供显着的改善?

B)是否有关于如何正确构建多线程程序的文章,以便编译器优化可以完成其工作?

Gil*_*il' 5

"积极爆炸"有点奇怪(你的程序是裂变炸弹的控制器吗?),但我知道你的程序在没有编译器优化的情况下表现得很好,并且神秘地使用编译器优化.

这个技术术语是你的程序有问题.

多线程编程本质上很难.线程共享内存时的多线程编程非常困难; 它是并行编程的受虐狂方式(消息传递更容易实现).您不仅需要阅读一两篇文章,还需要阅读几本书并获得几年的编程经验.

你不幸的是你的程序似乎没有优化.它可能不适用于时序有点不同的不同机器,或者使用不同的编译器,或者在不同的操作系统上.所以你最终浪费时间思考你的程序是否有效.但事实并非如此.无论您选择何种优化级别,编译器都会将正确的源代码转换为正确的可执行文件.¹

¹ 确定禁止编译器错误.但是很可能会对你不利.