Supongamos que tengo dos recursos, nombrados 0y 1, a los que solo se puede acceder de forma exclusiva.
¿Hay alguna forma de recuperar el "índice" del "procesador paralelo" que se xargsinicia 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 0y 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, xargsprobablemente no pueda hacer esto. ¿Existe una solución equivalente mínima? Usar / limpiar archivos como cerraduras falsas no es preferible.
fuente
