问题一个java.util.arrayqueue,处理的程序可以从一个静态java.util.arrayqueue顺序读取多个线程?如果一个进程程序的三个线程运行和三个数据对象到达入arrayqueue,每个线程处理一个数据对象或只有一个线程将处理所有三个数据对象读取多个线程
Q
读取多个线程
0
A
回答
1
您正在描述生产者 - 消费者模式。
的几点
如果您产卵三个线程,它们每一个循环,阅读过相同的队列,然后将他们全部尝试使用队列中的项目。没有保证每个线程将消耗多少项目。这完全取决于JVM中的线程调度程序(或OS级别)。一般来说,如果大量相似的项目被添加到队列中,每个线程将消耗大致相同数量的项目。
ArrayQueue不是因为它不是线程安全的这个用例一个不错的选择。更好的选择是的ConcurrentLinkedQueue或ConcurrentBlockingQueue
直接回答你的问题,是的,你可以有多个线程从同一队列中读取,但请考虑以上。
0
通常情况下,你要使用同步的线程到每个线程读取1个输入。
要回答你的问题,无法确定在这种情况下的行为。你应该强制你的线程同步,以确保每个线程在任何时候都很忙,而不仅仅是一个。
0
你真的很想在这种情况下使用同步或切换到更合适的数据结构。
从arrayqueue的文档: 他们不是线程安全的;在不存在外部同步的,它们不支持由多个线程
0
假设arrayqueue压入/弹出是线程安全和并发访问所使用不限制运行的线程的数目的任何信令:
Depends中可用的内核数量以及线程处理数据的速度。如果有三个空闲内核并且排队的任务需要一些时间,那么这三个线程可以同时运行这三个任务。如果任务非常简短,并且系统上有一些负载,使得在数据提交时只有一个线程是空闲的,则一个线程可能会比赛并在另一个线程变为可用之前执行所有三个项目。如果内核比任务少,那么显然只有[不。内核]任务可以同时运行。
混合并匹配那些可能性。
相关问题
- 1. 多个线程读取一个变量
- 2. Python:多个文件的线程读取
- 3. 从多个线程读取SQL数据
- 4. 从多个线程读取全局值
- 5. 多线程文件读取
- 6. 多线程文件读取
- 7. 多线程读取文件
- 8. 多线程MSMQ读取
- 9. 阅读从多个线程
- 10. 从多个线程读取多个文件
- 11. 多线程写入,一个线程从队列中读取,线程安全
- 12. Android sqlite插入/从多个线程多次读取
- 13. 多线程,读取多个文件并写入新文件
- 14. 使用PHP Pthread同时读取多个CSV文件(多线程)
- 15. 通过多线程读取文件
- 16. 多线程文件读取python
- 17. 使用多线程读取文件
- 18. 从多线程的mysql表中读取
- 19. 隔离读取和写入多线程
- 20. 多线程读取原始类型
- 21. Java多线程写入和读取
- 22. 读取大文本文件多线程?
- 23. 用Java读取多线程文件
- 24. 只使用多线程读取一行
- 25. 多线程:读取/写入管道
- 26. 多线程读取随机文件
- 27. 使用多线程读取30GB文件
- 28. 处理多线程读取输入
- 29. 多线程读取Java中的文件
- 30. 读取使用多线程Java中