
Windows has the concept of "Overlapped I/O" which permits dispatch of an i/o request that invokes a call back when done. Posix has aio which functions (I believe) in a similar way. So one has the concept of asyncronous i/o without any explicit reference to threads at least at the application level. In one I my projects I had occasion to use this. The windows API I found to be (as usual) pretty unwieldy. I ended implementing a wrapper with the aio interface. So it does work and can be useful. On the otherhand, it does seem to me functionally equivalent to multi-threading which is a more general and perhaps simpler concept. So it may or may not be a good idea to encourage its usage as opposed to threads Robert Ramey Don G wrote:
Of the mechanisms discussed, I am not sure I understand what you mean by async I/O with only one thread.