同时存在n个线程(n>5),需要写入或者读取一个名为test.txt的文件,有两个要求:
当一个线程正在写入数据时,其他线程不能写,也不能读。
当一个线程正在读入数据时,其他线程不能写,但能够读。
分析:
不能让两个或两个以上线程同时写入数据
不能让一个线程在写,同时有别的线程在读取
结论:
任一线程要对资源进行读写操作前必须申请锁。根据操作的不同,分为read锁和write锁,操作完成之后应释放相应的锁。
一个线程申请read锁的成功条件为:当前没有活动的写入线程。
一个线程申请write锁的成功条件是:当前没有任何正在读写test.txt文件的线程。专业程序代写
c++程序代写