Actually there could be only performance impact. In case you don't share your one thread pool between different applications (you can do this in tomcat) you shouldn't receive any Thread/Deadlocks risks.
But under Performance impact — I mean in comparing with launching applications on different servers. There are no significant performance difference between launching few applications on single tomcat or launching few tomcat with sing applications on board.
BUT: there are at least few limitation:
- you can't use different versions of shared libraries. If you looks on ./lib folder in tomcat — there are some libraries like jsp-api, servlet-api, jasper.
If you applications limited to use different specific versions — it can be an issue (it can be solved also, but it is addition limitation).
- to reload/update one application in some cases you need reload tomcat, so you need stop/start all applications hosted on this tomcat.
With one of benefits launch few applications in one tomcat — you can save some RAM. Example: if few of your application use same library — you can move it on ./lib folder, so this library will be picked up in memory only once (not as once per each application).
P.S. Web applications can be hosted in many ways, personally I prefer two concepts: many micro-services with embedded webserver(tomcat/jetty) in case of using SOA/microservice architecture or hosting few applications on single tomcat in other ways.