【发布时间】:2016-05-03 11:52:55
【问题描述】:
我有一个 Java 应用程序,我需要在其中使用多线程。
我有一个ID's 列表,它是存储在 DynamoDB 中的表的主键。
说,清单是:
| ID_1 | ID_2 | ID_3 | ID_4|.......| ID_n|
现在我希望多个线程读取这些ID's 并对每个 ID 执行以下操作:
每个线程都应获取一个 ID 并查询 DynamoDB 表(有两个以 ID 为主键的 dynamo DB 表)
查询每个 Dynamo DB 表的结果应存储在单独的文件中。
基本上,Thread_1 应该选择一个 ID,比如 ID_1,它应该查询 DynamoDB 表 DDB_1 和 DDB_2。查询DDB_1的结果应该进入File1,DDB_2的结果应该进入File_2。这需要对所有线程进行。最后,当所有线程都完成执行后,我应该有两个文件File_1 和File_2,其中包含来自所有线程的查询结果。
我想出了一个解决方案,让所有生产者线程(从 Dynamo DB 获取查询结果的线程)将查询结果排队到写入文件的单个消费者线程,例如 File_1。同样,所有生产者线程写入第二个队列,第二个消费者线程写入File_2。
您觉得上述方法有什么缺陷吗?在这种情况下,有没有更好的方法来应用多线程?
【问题讨论】:
-
请在此处发布您的代码...尝试发布MCVE
-
我目前正在决定设计。一旦找到可能的解决方案,我将开始实施它。需要检查这是否是一个可行的解决方案,或者有更好的方法可以尝试!
标签: java multithreading