Menambahkan &
memunculkan proses latar belakang.
Jika Anda menulis a; b
, itu akan menjalankan perintah a
, tunggu sampai selesai, kemudian jalankan perintah b
, secara berurutan.
Jika Anda menulis a & b
, itu akan muncul a
sebagai proses latar belakang. Itu tidak akan menunggu sampai selesai, dan itu akan mulai berjalan b
segera. Ini akan menjalankan keduanya sekaligus.
Anda dapat melihat apa yang dilakukannya dengan bereksperimen di shell. Jika Anda telah X
menginstal, xterm
adalah cara yang baik untuk melihat apa yang terjadi: mengetik
$ xterm
akan menyebabkan jendela terminal lain terbuka, dan yang pertama akan menunggu sampai Anda menutupnya. Hanya ketika Anda menutupnya Anda akan mendapatkan shell Anda kembali. Jika Anda mengetik
$ xterm &
maka itu akan menjalankannya di latar belakang, dan Anda akan mendapatkan shell Anda segera, sementara xterm
jendela juga akan tetap terbuka.
Jadi, jika Anda menulis
echo "a fixed string" $i | nc localhost *port here* >> /tmp/me/dump.txt
itu membuat koneksi, mengirim string, menyimpan apa yang keluar dalam file, dan hanya kemudian pindah ke yang berikutnya.
Menambahkan &
membuatnya tidak menunggu. Ini akan berakhir menjalankan semua sepuluh ribu dari mereka lebih atau kurang secara bersamaan.
Skrip Anda tampaknya "berakhir" lebih cepat, karena mungkin itu tidak benar-benar selesai pada saat itu. Itu hanya membuat sepuluh ribu pekerjaan latar belakang, dan kemudian mengakhiri latar depan.
Ini juga berarti bahwa, dalam kasus Anda, itu akan mencoba membuka sepuluh ribu koneksi lebih atau kurang sekaligus. Bergantung pada apa yang ujungnya bisa tangani, beberapa dari mereka mungkin gagal. Bukan hanya itu, tetapi tidak ada jaminan bahwa mereka akan berjalan berurutan, pada kenyataannya mereka hampir pasti tidak akan, jadi apa yang sebenarnya akan berakhir /tmp/me/dump.txt
adalah dugaan siapa pun.
Apakah Anda memeriksa apakah outputnya benar?
&
membuat perintah berjalan di latar belakang, itu saja. Itu tidak membuatnya lebih cepat atau apa pun. Baca manual shell yang Anda gunakan (saya asumsikan bash) manual.