Является ли приемлемой практика запускать несколько экземпляров одной и той же программы go с помощью goroutines, например, запустить go main ()?
Если это так, возможно ли изменить аргументы, отправленные в программу (или os.Args []), таким образом, чтобы функция main () не создавала бесконечное количество программ?
Затем горутины должны иметь возможность общаться друг с другом по каналам. Я понимаю, что подпрограммы разделяют одно и то же пространство памяти, но имеют отдельные стеки, так что это может вызвать проблемы с состоянием гонки.
Или, возможно, это неправильное использование Goroutines, и я должен просто придерживаться exec.Command (), чтобы выполнить другой экземпляр исполняемого файла, и заставить эти экземпляры взаимодействовать через JSON-RPC.
Спасибо за помощь.