首页 > 解决方案 > 如何为每个线程提供每个变量自己的实例(避免在多线程中共享堆)?

问题描述

我的应用程序基于套接字输入构建了一个复杂的模型。假设输入有规律地以两个不同的时间间隔出现,每小时间隔和每天间隔。数据的处理方式完全相同,只是我想同时构建一个“每小时”模型和一个“每日”模型,并行。最简单的解决方案是使用两个不同的套接字端点复制代码,以便将每小时和每天的数据发送到不同的端点。显然这不是一个优雅的解决方案。那么,是否有一种优雅的方式/设计模式/架构可以支持我的目的?要求如下:

1. 根据输入的类型,使用相同的代码库同时构建不同的模型
2. 同时在一个中心处理/cccessing模型的数据得出结论/组合模型

我考虑让应用程序在两个不同的线程中运行,例如一个构建小时模型,一个构建每日模型.但是,我不想在线程之间共享我的变量。例如,目前我的代码将传入的数据存储到一个列表中,然后对其进行进一步处理。因此,当输入是每小时和每天的数据时,我不希望它被混合(否则我不会得到两个单独的模型),而是分开处理(不重复我的代码或像使代码工作这样的巨大重构)两种而不是一种输入类型)。基本上我希望我的代码具有可扩展性。

标签: javamultithreadingdesign-patternsconcurrencyarchitecture

解决方案


推荐阅读