Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何停止使用python返回组合数据的多线程_Python_Multithreading_Csv - Fatal编程技术网

如何停止使用python返回组合数据的多线程

如何停止使用python返回组合数据的多线程,python,multithreading,csv,Python,Multithreading,Csv,使用多线程时,我会得到组合数据 列表是:A、B、C。如果我安装了这个,fdata[]包含来自A、B和C的数据。如何获取fdata也只包含一组数据。我试过del fdata,但没用。我需要一把锁 class WorkerThread(threading.Thread): def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue

使用多线程时,我会得到组合数据
列表是:A、B、C。如果我安装了这个,fdata[]包含来自A、B和C的数据。如何获取fdata也只包含一组数据。我试过del fdata,但没用。我需要一把锁

class WorkerThread(threading.Thread):
       def __init__(self, queue):
            threading.Thread.__init__(self)
            self.queue = queue

       def run(self):
            while 1:
              try: # take a job from the queue
                   symbol, test, test2 = self.queue.get_nowait()

              except Queue.Empty:
                   raise SystemExit

              fn = %s.CSV" % symbol
              fdata = []
              fo = open(fn, 'rb')
              fr = csv.reader(fo, dialect='excel')
              for row in fr:
                   fdata.append(row)
              #print fdata 
              #del fdata 

如何将线程号添加到fdata或将id A、B、C列表添加到fdata

fdata应该始终包含CSV文件的内容,毕竟您对行进行了循环,所以它应该始终包含一个B和C。。。也许你应该多解释一下你想做什么

至于你的第二个问题- 您的线程对象有一个see
线程。get_ident()

返回线程的“线程标识符” 当前线程。这是一个非零 整数。它的价值没有直接关系 意思这是一个魔术 要使用的cookie,例如索引 线程特定数据字典。 线程标识符可以循环使用 当一个线程退出而另一个线程退出时 是创建的

编辑:


也许fdata是一个全局变量,或者是跨文件访问保存的?我在代码片段中看不到任何东西可以做到这一点,但我不知道如何解释它。根据函数,fdata应该是函数中的一个局部作用域变量,它应该与堆栈框架一起消失…

这里的多线程究竟是什么?您的fdata在某种程度上是全局的吗?尝试做到:简单地拥有大量csv。都差不多。symbol.csv是文件名。“符号”改变了。我想要多线程:读取文件,然后加载到数据库中。我需要fdata包含一个文件中的onlt数据。现在,fdata是开放的,所有线程都在使用它,它将加载所有子序列的csv数据。