Katakanlah saya memiliki loop di Bash:
for foo in `some-command`
do
do-something $foo
done
do-somethingterikat cpu dan saya memiliki prosesor 4 inti yang bagus dan berkilau. Saya ingin bisa berlari hingga 4 do-somethingsekaligus.
Pendekatan yang naif tampaknya:
for foo in `some-command`
do
do-something $foo &
done
Ini akan menjalankan semua do-something s sekaligus, tetapi ada beberapa kelemahan, terutama yang melakukan-sesuatu yang juga mungkin memiliki beberapa signifikan I / O yang tampil semua sekaligus mungkin memperlambat sedikit. Masalah lainnya adalah blok kode ini segera kembali, jadi tidak ada cara untuk melakukan pekerjaan lain ketika semua do-somethingsudah selesai.
Bagaimana Anda menulis loop ini sehingga selalu ada X do-somethingyang berjalan sekaligus?