【发布时间】:2014-08-11 14:49:22
【问题描述】:
我的程序从服务器下载文件,然后解析它。
对于下载文件,我有一个栏,但我想制作栏进行解析。
解析需要花费大量时间和精力,因此我的解决方案不必使用大量电力。
few servers -> few files -> line in file
即一次,我从服务器下载文件(大约 4-5 个文件),下载后开始解析。
但是当服务器超过 1 台时,我的程序会从两台服务器下载文件,所以我有 2 倍以上的文件。服务器上的文件名相同,但是当我下载文件时,我将这些文件的名称更改为“world”+“orginalfile.txt”
我想过这样的事情:
map<int server,std::map<int file(<make it enum),{current line, max lines} >> (struktura)
因为在读取文件时,我想让 emit 将数据发送到窗口。
当开始阅读我想发送(file,lines_in_file,server)
阅读时发送(file,current_line,world)
然后在读取此数据的窗口中将此数据推送到某个变量(如上例)并运行第二个函数来计算进度条。
即
servers[] -> files [] -> 线程下载 -> 线程读取(这些 线程启动每个文件,所以如果服务器是 2 和文件 4 这些线程 开始 8x) -> 发出初始化信号 (send file,lines_in_file,server_number) + 逐行读取时发出 (currentLineWhenReading,file,server) 信号
那么如何做到最好,获取大量数据并保持它+使用微弱的力量来计算呢?
【问题讨论】:
标签: c++ multithreading qt