Subject: OOP, Java
Assume you want to develop an application like Microsoft Word, Microsoft Excel, Microsoft Paint, etc. in which multiple users are allowed to access the same file simultaneously from different locations.
All users can simultaneously read the file, but only one user is given an access to add, edit or delete data at a time.
Discuss how you would use threading to accomplish the task described in the scenario mentioned.