我想爲大量的文件構建一個解析器,而且我找不到關於我可能稱之爲「嵌套goroutines」的資源(也許這不是正確的名稱?)。我們應該嵌套goroutines嗎?
給定了很多文件,每個文件都有很多行。我應該怎麼做:
for file in folder:
go do1
def do1:
for line in file:
go do2
def do2:
do_something
或者我應該用夠程的只有「一平」,並執行以下操作:
for file in folder:
for line in file:
go do_something
我的問題主要目標的性能問題。
感謝您接觸到這句話!
難道只是嘗試兩種看到?我認爲它可能強烈依賴於您的操作系統,磁盤和文件系統。並行性太少意味着阻塞等待I/O,太多意味着磁盤抖動。 – Thomas
goroutines是獨立預定的。無論你是從嵌套循環還是嵌套函數調用它們都無關緊要。調用N goroutines調用N goroutines。 – JimB
恕我直言,還有其他更好的工具適合這種工作,不要重新發明weel,看看hadoop或火花項目 – fabrizioM