java中可运行创建的限制
我有一个连续接收信息的系统。我需要将这些消息传递到新系统。但我将在这里发送数百万条信息。我想在一个单独的线程上运行这个。在这种情况下,我们可以创建数百万个Runnable来在ScheduledThreadPoolExecutor上发布任务吗 我认为没有必要创建数百万个可运行实例。我不知道您的系统的其他细节,但看起来您可以在收到消息后立即将收到的消息发送到新系统java中可运行创建的限制,java,Java,我有一个连续接收信息的系统。我需要将这些消息传递到新系统。但我将在这里发送数百万条信息。我想在一个单独的线程上运行这个。在这种情况下,我们可以创建数百万个Runnable来在ScheduledThreadPoolExecutor上发布任务吗 我认为没有必要创建数百万个可运行实例。我不知道您的系统的其他细节,但看起来您可以在收到消息后立即将收到的消息发送到新系统 如果您希望添加一些电阻,则应该考虑使用消息队列或数据库来存储接收到的消息。这样,您可以防止它们在崩溃/进程退出时丢失。一个单独的线程池应
如果您希望添加一些电阻,则应该考虑使用消息队列或数据库来存储接收到的消息。这样,您可以防止它们在崩溃/进程退出时丢失。一个单独的线程池应该通过发送到新系统来处理来自这个存储(队列或数据库)的消息。
我认为没有必要创建数百万个可运行实例。我不知道您的系统的其他细节,但看起来您可以在收到消息后立即将收到的消息发送到新系统如果您希望添加一些电阻,则应该考虑使用消息队列或数据库来存储接收到的消息。这样,您可以防止它们在崩溃/进程退出时丢失。一个单独的线程池应该通过发送到新系统来处理来自该存储(队列或数据库)的消息。
任何对象的创建都没有限制。为什么要对可运行性进行限制?您不会对性能感到满意(只有当您的计算机上有数百万个处理器时)。@uWealner任务将只是排队。OP表示他们使用的是线程拉执行器,这意味着有N个线程处理M个任务,其中N通常小于处理器数量。最好使用开源消息队列库,如RabbitMQ
、Apache ActiveMQ
、Apache Kafka
等。任何对象的创建都没有限制。为什么要对可运行性进行限制?您不会对性能感到满意(只有当您的计算机上有数百万个处理器时)。@uWealner任务将只是排队。OP表示他们正在使用线程拉执行器,这意味着有N个线程处理M个任务,其中N通常小于处理器数量。最好使用开源消息队列库,如RabbitMQ
,ApacheActiveMQ
,ApacheKafka
等。