I am trying to write to a file using two threads. If I use ReaderWriterLock and while one thread is writing to file and second thread comes, will it actually wait for lock to release or it will just skip writing to file?
When using ReaderWriterLock does second thread actually wait or not
1k views Asked by Frank Martin At
2
There are 2 answers
0
Iliass Akkara
On
Yes, the file will be closed to writing and all writer threads will be placed in a writer queue, but open for reading: https://learn.microsoft.com/en-us/dotnet/api/system.threading.readerwriterlock?view=netcore-3.1
Related Questions in C#
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in MULTITHREADING
- How can I outsource worker processes within a for loop?
- OpenMP & oneTbb difference
- Receiving Notifications for Individual Task Completion OmniThreadLibrary Parallel.ForEach
- C++ error: no matching member function for call to 'enqueue' futures.emplace_back(TP.enqueue(sum_plus_one, x, &M));
- How can I create a thread in Haskell that will restart if it gets killed due to any reason?
- Qt: running callback in the main thread from the worker thread
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Heap sort with multithreading
- windows multithreading CreateMutex
- The problem of "fine-grained locks and two-phase locking algorithm"
- OpenMP multi-threading not working if OpenMPI set to use one or two MPI processor
- WPF Windows Initializing is locking the separated thread in .Net 8
- TCP Client Losing Connection When Writing Data
- vc++ thread constructor throwing compiler error c2672
- ASP.NET Core 6 Web API : best way to pause before resending email
Related Questions in FILE-IO
- Data loaded from the file is not returned in the correct order
- C++ File Input Skipping Lines
- Reading many rows of a 2D array from file in C++
- How to get character position in a text file encode in UTF-8 in C?
- Open File in Python and viewing contents of that file
- Powershell Script to Replace Text in Text File, but not save to new file
- In a text file, count lines from string 'foo' to first empty line afterwards. Raise exception if 'foo' not found
- NoClassDefFoundError and ClassNotFoundException when reading data from a csv file using opencsv in java
- How to access a module inside of a module from a file inside the first module in python?
- Sorting a binary file with structs
- How Dask manages file descriptors
- Issues when Reading Preferences from Input File in Java for Stable Matching Problem
- Merge 2 directories and overwrite files with same name
- Flowchart Symbol for File Input Output Java
- Can't access files with a relative path when compiled into a jar
Related Questions in READERWRITERLOCK
- AsyncReaderWriterLock for a server that uses LiteDB
- Implementing reader-writers lock using basic pthread objects and methods
- Readers-writers problem, I need to let in 5 readers per writer in the database
- Reader/Writer: multiple heavy readers, only 1 write per day
- About shared_mutex and shared_ptr across multiple threads
- How does linux( or any OS) file system "exactly" handle concurrent file I/O (kernel's scheduling)?
- Reader writers problem using Java Threads
- LockRecursionException in multiple threaded function
- Segmentation fault (core dump) First reader-writer problem
- Reader Writer java with a limited number of readers
- When using ReaderWriterLock does second thread actually wait or not
- Questions about ReaderWriterLockSlim. I use readerwriterlockslim to read and write, but only show write at last in console. Why?
- What will happen if you modify the reader process in reader-writer problem?
- Does an Arc allow an RwLock to have more than one writer?
- The reader writer lock I wrote backed by GCD code causes a deadlock in parallel test
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
That depends on your action.
Multiple threads can read the file while it's locked.*
However, if you're trying to write to that file with a different thread while the lock is still being hold by another thread, the (new) thread will wait until it acquired the lock.
Keep in mind that a timeout can be defined. As stated in the documentation
So, referring to your specific question: The file will indeed be skipped if a timeout has been set and that timeout has been exceeded.
That timeout can be set using the
AcquireWriterLock(TimeSpan timeout)overload.What's important to remember is that - if the thread calling
AcquireWriterLockstill has a valid reader lock - the operation will deadlock.* Note that a timeout can also be defined for reading using the
AcquireReaderLock(int msTimeout)method. AnApplicationExceptionwill be thrown if the timeout expires before the lock has been granted, meaning reading will be skipped, too.