Misalkan saya memiliki dua sumber daya, bernama 0
dan 1
, yang hanya dapat diakses secara eksklusif.
Apakah ada cara untuk memulihkan "indeks" dari "prosesor paralel" yang xargs
diluncurkan untuk menggunakannya sebagai layanan saling pengecualian gratis? Misalnya, pertimbangkan perhitungan paralel berikut:
$ echo {1..8} | xargs -d " " -P 2 -I {} echo "consuming task {}"
consuming task 1
consuming task 2
consuming task 3
consuming task 4
consuming task 5
consuming task 6
consuming task 7
consuming task 8
Pertanyaan saya adalah apakah ada kata ajaib, katakanlah index
, di mana output akan terlihat
$ echo {1..8} | xargs -d " " -P 2 -I {} echo "consuming task {} with resource index"
consuming task 1 with resource 0
consuming task 2 with resource 1
consuming task 3 with resource 1
consuming task 4 with resource 1
consuming task 5 with resource 0
consuming task 6 with resource 1
consuming task 7 with resource 0
consuming task 8 with resource 0
di mana satu-satunya jaminan adalah bahwa hanya ada paling tidak satu proses menggunakan sumber daya 0
dan sama untuk 1
. Pada dasarnya, saya ingin mengomunikasikan indeks ini ke proses anak yang akan menghormati aturan untuk hanya menggunakan sumber daya yang diperintahkan.
Tentu saja, akan lebih baik untuk memperluas ini ke lebih dari dua sumber daya. Memeriksa dokumen, xargs
mungkin tidak bisa melakukan ini. Apakah ada solusi setara minimal? Menggunakan / membersihkan file sebagai kunci palsu tidak disukai.
sumber