我在多线程应用程序中按以下顺序使用ostream::write
和ostream::flush
操作:
// <<-- start time measurement
{
ostream::write();
ostream::flush();
}
//<<-- end time measurement
关于测量上述序列的时间的问题,我得到一个非常短的时间(~10毫秒),但是线程入口之间的时间变得非常大(~400毫秒),这只是因为添加了{{1} }和ostream::flush
命令。
只有一次,我得到的时间差异变得更大,但我不确定是否是因为某些上下文切换。
我在Linux机器上测试它,双核cpu。
这让我感到困惑,我认为这两个函数都是阻塞的,或者是在ostream:::write
之后才真正完成了写作?
修改:
只有一个线程写入文件。