【发布时间】:2013-01-02 17:54:16
【问题描述】:
这可能很容易回答,但我似乎无法弄清楚它的语法。我需要的是一个二维数组,第一个元素是指向 CSTRING 的指针,第二个元素是一个计数器。
这样做的目的是根据线程编号将单词列表线程化并传递给线程。就像它被定义为 char wordlists[100][10] 之类的东西(每个线程 100 个单词和 10 个列表 1 个总共 10 个)我最初可以用文件中的单词填充所有列表,然后将特定列表传递给要处理的线程,一旦线程加入主线程,我将重新填充与加入线程相关的单词列表并用新单词重新启动线程。
总的来说,我没有得到制作二维指针数组的语法(第一个元素指针第二个只是一个计数器)。也可以只传递特定线程的单词开始的数组地址,所以我不需要传递 1000 个单词的整个 2D 数组吗? (这样我就可以传递存储 100 个字的线程的起始地址)
感谢您的帮助!
edit:: 如果你们对通过线程处理大字文件的类似方法有更好的建议,那么建议他们接受更多想法。
【问题讨论】:
-
您是否尝试跨线程对阵列进行分区?原始表定义可能会对您的问题有所帮助,因为我认为这不会像您最初想象的那么复杂。
-
@WhozCraig 是的,我正在尝试创建 10 个 100 个单词的列表,并为每个线程提供 1 个列表,并在他们加入主线程时重新填充他们的列表并重新启动它们,直到单词文件被完全阅读.
-
好的。您尝试拆分并发送到线程的来源是否来自更大(更重要的是,完整)列表?
-
我停在第一段。如果需要 CString 和计数器,请使用结构。
-
@WhozCraig 是的,主要列表是位于硬盘驱动器上的文件,根据我选择的文件包含 300、000 或更多单词。
标签: c arrays multithreading