【发布时间】:2014-03-18 08:06:29
【问题描述】:
我上周想到了这个想法。我参与创建一个应用程序,该应用程序可以使用给定的正则表达式分析 200GB 的日志文件并将报告制作为 CSV 文件。所以多线程是显而易见的。但即使我们以编程方式使用如下所示的多线程
lock(Object)
{
//Logic
}//unlock(Object) if you prefer c++
实际上它仍然只有一个内存块。有什么办法可以让我像这样创建很多内存空间,这样我就可以在这些函数空间上操作变量。所有这些功能空间都具有相同的功能。下图可以解释清楚
注意:即使委托和匿名函数也是一个函数/内存块。
EDIT1: 我有兴趣知道“标题”是否可能。我给出这个问题是为了让你了解我是如何得到这个想法的。
EDIT2: 我认为在大多数语言中,任何功能总是只有一个实例。这条定律无处不在,包括穿线。我想要相同功能的许多实例。
【问题讨论】:
-
这个问题对我来说似乎很不清楚。您是在问如何创建每个线程的变量?
-
这听起来像是用 1000 条鲨鱼喂一条鱼。
-
日志文件中的数据是固定大小的吗?还是每条记录的大小都是可变的?
-
@prabhakaran 你明白每次调用函数都会有自己的局部变量副本吗?这意味着如果有 10 个线程执行
foo(),每个线程将拥有自己的foo()局部变量的副本。你能清楚地解释一下拥有两个(或十个)相同的功能会带来什么吗? -
关于结束投票(不是我的,顺便说一句):这里有几个人试图弄清楚你在问什么,所以把投票搁置为“不清楚你是什么”问”似乎并没有那么不合适。你必须更好地解释自己。
标签: c# c++ multithreading function