gpt4 book ai didi

Java线程正确的实现方式

转载 作者:行者123 更新时间:2023-12-01 19:54:47 24 4
gpt4 key购买 nike

这个项目的要点是每秒向数据库添加一个时间戳。

我需要什么。

1.用于将生成的时间戳添加到数据库的BackgroundTask。

2.BackgroundTask,用于在服务器连接离线时将数据添加到Buffer

3. 添加保存到数据库内缓冲区的数据,同时在应用运行时保存新的时间戳

我已经完成了第一部分和第二部分,但无法弄清楚第三部分。

我有 2 个线程类,并且都实现了 Runnable

当服务器状态为正时,Thread A 将数据添加到数据库。

当服务器状态为负时,Thread B 创建一个 Buffer 并将数据存储在其中。

现在我需要 Thread C ,它尝试每 5 秒连接到服务器一次,并在建立连接时 Thread B 应该以某种方式将数据实现到数据库(按 FIFO 顺序)。

我无法弄清楚如何处理线程以及实现进一步功能的正确方法,有人可以指导我如何实现以下功能吗?

最佳答案

使用 BlockingQueue 特别是 LinkedBlockingQueue(FIFO) 怎么样?

无论连接是否可用,线程 A 都会不断将数据添加到队列中,线程 B 将尝试读取并提交到数据库,因此如果队列中没有数据,线程 B 将阻塞并等待数据。

注意:如果您想确保没有任务被拒绝,请选择无界阻塞队列。

关于Java线程正确的实现方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49959075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com