is it possible to modify/access the Java call stack ? For instance saving and restoring ? I'm thinking about implementing cooperative multitaskting (especially I/O) just like gevent for python or haskell (which does this natively). The async callback spaghetti mess can't be the best solution.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The simplest solution is to have multiple threads. You can have up to 10,000 threads running efficiently on a server. If you need much more than this, I would suggest either a) buying a second server, or b) using non-blocking IO.
In general, using multiple threads is the simplest and for small numbers of threads, is the fastest too.
There are libraries to do this in Java in various manners. They all suffer from a common problem, they are either slower, or much more complicated or both.
BTW I make this point because when a thread context switch it does exactly what you suggest, but the OS does it for you.