如何从多个线程同步文件上的写入

问题描述 投票:0回答:1

[嘿,我有以下问题:我有某种“注册”功能,该功能可在从被感染的线程调用的文件上写入,以便程序的行为如下:

                        main()
                         |
        ----------------------------------------
        |                 |                    |                  
       *thread 1       *thread2             *thread3
        |                 |                    |
      Register           Register            Register  
        |                 |                    |
        ----------------------------------------
                          |
                       sameFile

现在的问题是:即使寄存器注册,我是否可以使用互斥锁在寄存器功能内的关键部分(检查用户是否已经写入文件,然后再写入文件)函数本身不是线程,而是由线程调用的?还是应该在调用Register函数之前在线程中使用互斥锁?

c multithreading mutex
1个回答
1
投票

您可以在任何有意义的地方使用互斥锁。

No函数一个线程,它们都只是函数-其中一个是线程启动时调用的第一个函数。尽管这可能是由内部库函数调用的,但实际上并没有比它以后调用的任何其他函数更特别。

[在函数内部使用互斥量(希望从多个线程调用)以保护共享资源完全是正常的用例。

© www.soinside.com 2019 - 2024. All rights reserved.