NIO and Comet are completely unrelated: you can mix and match them.
Using the NIO connector (or APR in this case) allows you to process more requests with fewer threads due to the streaming model. See http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#Connector_Comparison for a comparison between connectors.
Comet (and Websocket) have a completely different scheduling model, which requires a different application architecture and provides higher bandwidth in a different way.
The script that you ask in your question is a typical model lock with one thread per request. In step 4, the Java BIO connector (which runs through Tomcat 7 by default) will continue to wait for additional requests for the existing connector - for keepalive HTTP requests. If the client does not establish Connection:close in the previous request and does not close the connection, the thread will hang until the keepalive timeout is reached. If you use the NIO connector, the stream will return to the thread pool immediately after sending the response, and you will not "waste" the stream on keepalive requests that will never arrive.
Comet / Websocket works in a completely different way, passing a message to a specially written servlet (and optional filters), and threads are used only when there are messages to send or data to be written.
UPDATE 2016-08-19
Tomcat 8.5 and 9.0 completely reset the BIO connector. This is due to the fact that many of the new APIs and technologies (for example, Websocket) require non-blocking semantics, and creating a non-blocking service on top of the blocking API is very difficult. The code needed to complete this work made the rest of the Tomcat code very ugly, etc., and so it was decided to completely abandon the BIO connector. Therefore, only NIO, NIO2, and APR-based connectors are available for Tomcat 8.5 onwards.
Please note that with Tomcat 8.5 and 9.0, Comet support has been disabled. Use of the comet should be replaced by Websocket, which is a more standard protocol.
Christopher Schultz Jun 14 2018-12-12T00: 00Z
source share