Supongamos que tengo dos recursos, nombrados 0
y 1
, a los que solo se puede acceder de forma exclusiva.
¿Hay alguna forma de recuperar el "índice" del "procesador paralelo" que se xargs
inicia para usarlo como un servicio gratuito de exclusión mutua? Por ejemplo, considere el siguiente cálculo paralelo:
$ 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
Mi pregunta es si existe una palabra mágica, por ejemplo index
, donde se vería la salida
$ 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
donde la única garantía es que solo hay como máximo un proceso que utiliza recursos 0
y el mismo para 1
. Básicamente, me gustaría comunicar este índice al proceso secundario que respetaría la regla de usar solo el recurso que se le indicó.
Por supuesto, sería preferible extender esto a más de dos recursos. Inspeccionar los documentos, xargs
probablemente no pueda hacer esto. ¿Existe una solución equivalente mínima? Usar / limpiar archivos como cerraduras falsas no es preferible.
fuente