Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 795445
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T22:28:54+00:00 2026-05-14T22:28:54+00:00

I would like to do some stuff in Java that would be clearer if

  • 0

I would like to do some stuff in Java that would be clearer if written using concurrent routines, but for which full-on threads are serious overkill. The answer, of course, is the use of coroutines, but there doesn’t appear to be any coroutine support in the standard Java libraries and a quick Google on it brings up tantalising hints here or there, but nothing substantial.

Here’s what I’ve found so far:

  • JSIM has a coroutine class, but it looks pretty heavyweight and conflates, seemingly, with
    threads at points. The point of this is to reduce the complexity of full-on threading, not to add to
    it. Further I’m not sure that the class can be extracted from the library and used independently.
  • Xalan has a coroutine set class that does coroutine-like stuff, but again it’s dubious if this
    can be meaningfully extracted from the overall library. It also looks like it’s implemented as a
    tightly-controlled form of thread pool, not as actual coroutines.
  • There’s a Google Code project which looks like what I’m after, but if anything it looks more
    heavyweight than using threads would be. I’m basically nervous of something that requires software to
    dynamically change the JVM bytecode at runtime to do its work. This looks like overkill and like
    something that will cause more problems than coroutines would solve. Further it looks like it doesn’t
    implement the whole coroutine concept. By my glance-over it gives a yield feature that just returns
    to the invoker. Proper coroutines allow yields to transfer control to any known coroutine directly.
    Basically this library, heavyweight and scary as it is, only gives you support for iterators, not
    fully-general coroutines.
  • The promisingly-named Coroutine for Java fails because it’s a platform-specific (obviously using
    JNI) solution.

And that’s about all I’ve found.

I know about the native JVM support for coroutines in the Da Vinci Machine and I also know about the JNI continuations trick for doing this. These are not really good solutions for me, however, as I would not necessarily have control over which VM or platform my code would run on. (Indeed any bytecode manipulation system would suffer similar problems — it would be best were this pure Java if possible. Runtime bytecode manipulation would restrict me from using this on Android, for example.)

So does anybody have any pointers? Is this even possible? If not, will it be possible in Java 7?


Edited to add:

Just to ensure that confusion is contained, this is a related question to my other one, but not the same. This one is looking for an existing implementation in a bid to avoid reinventing the wheel unnecessarily. The other one is a question relating to how one would go about implementing coroutines in Java should this question prove unanswerable. The intent is to keep different questions on different threads.


Further edited to add:

The answer is selected. Some commentary, however, is in order. The library pointed to is not a coroutine library, so it technically doesn’t answer my question. That being said, however, it has two edges over the Google Code project linked to above:

  1. Both solutions use bytecode manipulation, but the selected library allows static bytecode manipulation which renders it usable in Android and other non-compliant JVM stacks.
  2. The Google Code project doesn’t do full coroutines. While the answer’s library doesn’t even do coroutines at all, it does something more important: it provides a good, foundational tool for rolling my own full-featured coroutines.
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T22:28:55+00:00Added an answer on May 14, 2026 at 10:28 pm

    Javaflow is a continuation implementation, it will probably let you do that. It uses bytecode manipulation though.

    Anyway, it feels like you’re trying to do OOP with plain C. It’s doable but it doesn’t mean you should do it.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 389k
  • Answers 389k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer You are a little confused print gettype((new CustomerObject())->get_customer()); Tries to… May 15, 2026 at 12:52 am
  • Editorial Team
    Editorial Team added an answer Try <?php header('Content-type: application/json'); $arrCoords = array('foo'=>'The quick brown fox… May 15, 2026 at 12:52 am
  • Editorial Team
    Editorial Team added an answer As far as I know FROM was needed in the… May 15, 2026 at 12:52 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.