线程或asyncio聚集?

时间:2017-12-13 10:21:30

标签: python-3.x python-asyncio

哪种方法可以进行并发i / o操作?

  • 线程或
  • asyncio

会有文件列表。

我打开文件并使用.txt文件生成图表并将其存储在磁盘上。

我尝试过使用线程但耗时,有时它不会为某些文件生成图表。

还有其他方法吗?

我尝试使用load_instantel_ascii函数上的async执行以下代码,但它提供了异常

 for fl in self.finallist:
   k = randint(0, 9)
 try:

 task2.append( * [load_instantel_ascii(fleName = fl, columns = None,
   out = self.outdir,
   separator = ',')])

 except:
   print("Error on Graph Generation")

 event_loop.run_until_complete(asyncio.gather(yl1
     for kl1 in task2)

 )

1 个答案:

答案 0 :(得分:1)

如果我理解了一切正确并且你想要异步文件I / O,那么asyncio本身doesn't support就可以开箱即用。最后,提供async file I/O的所有与asyncio相关的东西都使用线程池。

但它可能并不意味着你不应该使用asyncio:这个lib作为一种编写异步代码的方式很酷,即使它包装在线程之上。我会尝试像aiofiles这样的东西。