Set Java call stack

2019-09-01 14:55发布

问题:

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.