It would depend on the program. If you've got a load balancer in front, or they're receiving requests through a database or message queue, then there won't be an outage.
Arguably anything where uptime is important should be setup this way. Upgrades can fail, and that will cause downtime anyway.
If you restart them one at a time, you always have at least one instance running.