Java多线程实现2个生产者和一个消费者向环形缓冲区存储整数
采用2个生产者和一个消费者的多线程模型,将整数存储于环形缓冲区,该缓冲区是一个连续的存储空间,循环利用。写指针用于标识数据写入位置,当写到缓冲区末尾时,会循环回到缓冲区头部进行写入。类似地,读指针指示数据读取位置,当读到缓冲区末尾时,同样会回到头部重新开始读取。生产者1每0ms~500ms向缓冲区中存入一个整数,从1开始逐个递增。生产者2每0ms~500ms向缓冲区中存入一个整数,从1000开始逐个递减。消费者每0ms~5ms从缓冲区中读取一个整数。采用同步机制,如synchronized/wait或lock/unlock与条件变量,实现两个生产者和一个消费者之间的协同运行。运行结果输出格式为:Put(or Get) number {[content] length start_index end_index}。包含说明文档:采用的机制、完成情况、运行结果。
下载地址
用户评论