如何从多个线程同步文件的写入
How to synch the writing on a file from multiple thread
嘿,我遇到了以下问题:我有某种 "Registration" 函数写入一个文件,该文件是从一个线程调用的,因此程序的行为如下:
main()
|
----------------------------------------
| | |
*thread 1 *thread2 *thread3
| | |
Register Register Register
| | |
----------------------------------------
|
sameFile
现在的问题是:我可以在寄存器函数的关键部分使用互斥锁吗(检查用户是否已经写在文件上再写在文件上)即使register函数本身不是线程而是被线程调用?
或者我应该在调用 Register 函数之前在线程中使用互斥体?
您可以在任何有意义的地方使用互斥量。
没有函数 是一个线程,它们都是函数——其中一个是线程启动时第一个调用的函数.虽然这可能是由内部库函数调用的,但实际上并不比它稍后调用的任何其他函数更特别。
在函数(您希望从多个线程调用的函数)中使用互斥锁来保护共享资源正是正常用例。
嘿,我遇到了以下问题:我有某种 "Registration" 函数写入一个文件,该文件是从一个线程调用的,因此程序的行为如下:
main()
|
----------------------------------------
| | |
*thread 1 *thread2 *thread3
| | |
Register Register Register
| | |
----------------------------------------
|
sameFile
现在的问题是:我可以在寄存器函数的关键部分使用互斥锁吗(检查用户是否已经写在文件上再写在文件上)即使register函数本身不是线程而是被线程调用? 或者我应该在调用 Register 函数之前在线程中使用互斥体?
您可以在任何有意义的地方使用互斥量。
没有函数 是一个线程,它们都是函数——其中一个是线程启动时第一个调用的函数.虽然这可能是由内部库函数调用的,但实际上并不比它稍后调用的任何其他函数更特别。
在函数(您希望从多个线程调用的函数)中使用互斥锁来保护共享资源正是正常用例。