可以从同一文件描述符的两个线程并行调用fwrite和fclose吗?
如果从同一文件描述符的两个线程并行调用fwrite
和fclose
会发生什么?
fwrite
和fclose
对FILE
数据结构进行操作。 由于这是一个较大的数据结构,它存储的不仅仅是文件描述符,因此答案是不好的。
除非确保使用互斥锁进行primefaces操作,否则不要这样做。
POSIX要求FILE
访问是线程安全的,但由于fclose
关闭文件并使指针无效,所以没有办法(即它不仅仅是一个规范问题,而是一个基本的API问题,永远无法“修复”或消失)当另一个线程仍然可以访问FILE
时使用fclose
。 你需要自己做锁定。
对于这种情况,您需要定义方法的优先级。 您可以使用“synchronized”控制方法。