Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 非阻塞线程安全文件写入_Multithreading_File Io_Nonblocking - Fatal编程技术网

Multithreading 非阻塞线程安全文件写入

Multithreading 非阻塞线程安全文件写入,multithreading,file-io,nonblocking,Multithreading,File Io,Nonblocking,我正在尝试使用不应该被阻止的线程在不同偏移位置写入文件。我不太清楚如何进行同样的工作。我猜我需要用O_NONBLOCK标志打开文件 只是我需要用O_NONBLOCK标志打开文件,并且写入过程是相同的吗 任何代码示例都有助于解释 感谢您在UNIX/Linux上使用。换句话说,O_NONBLOCK对常规文件没有影响 通常,写入文件只是将数据复制到内核页面缓存并返回。除非文件是用O_DIRECT标志打开的,或者内核页缓存有太多脏页,在这种情况下,写操作会被阻塞 如果您需要对文件执行非阻塞写入,请创建一

我正在尝试使用不应该被阻止的线程在不同偏移位置写入文件。我不太清楚如何进行同样的工作。我猜我需要用O_NONBLOCK标志打开文件

只是我需要用O_NONBLOCK标志打开文件,并且写入过程是相同的吗

任何代码示例都有助于解释

感谢您在UNIX/Linux上使用。换句话说,
O_NONBLOCK
对常规文件没有影响

通常,写入文件只是将数据复制到内核页面缓存并返回。除非文件是用
O_DIRECT
标志打开的,或者内核页缓存有太多脏页,在这种情况下,写操作会被阻塞


如果您需要对文件执行非阻塞写入,请创建一个执行所有写入操作的专用线程,或使用。

您需要指定要使用的语言。我正在处理一个需要良好性能的项目,这就是为什么要同时使用多个线程写入文件。它是用CI编写的,我明白你的意思,但不太清楚如何实现它。我试着做一些事情,但它不起作用,我觉得我的代码中缺少了一些东西。请给我一个示例代码或发布一些可以使用的标准API,以便我能够在不损害数据完整性的情况下进行异步I/O。谢谢你的帮助!在我看来,最简单的方法就是从一开始。