本文主要是介绍java 读者写者问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
读者—写者问题(Readers-Writers problem)也是一个经典的并发程序设计问题,是经常出现的一种同步问题。计算机系统中的数据(文件、记录)常被多个进程共享,但其中某些进程可能只要求读数据(称为读者Reader);另一些进程则要求修改数据(称为写者Writer)。就共享数据而言,Reader和Writer是两组并发进程共享一组数据区,要求:(1)允许多个读者同时执行读操作;
(2)不允许读者、写者同时操作;
(3)不允许多个写者同时操作。一次只能一个写者
实现原理:使用Semapore 信号量 分别表示读者和写者的信号量 读者可以多个同时读,写者只能有一个可以写,使用AtomicInteger定义 readerCount 和writerCount 表示当前读者和当前写者的数量
package test;import java.util.Random;
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level;
import java.util.logging.Logger;public class ThreadSync {private static ThreadSync thrdsync;private static Thread t1, t2, t3, t4, t5;private static final Random ran
这篇关于java 读者写者问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!