JThread Web Page

Introduction

JThread is a software tool to externalize Java threads and to manage the process to stop and restart running threads in Java applications. It works with Java persistence or migration systems to provide thread persistence and migration in Java. JThread includes a class file post-processor, a JThread package API, and facilitating software. Because neither the Java compiler nor the JVM needs to be modified, JThread is compatible with any Java compilers, interpreters and platforms.

The JThread project started in autumn 1997. After spent about half a year investigating different approaches and doing experiments transforming Java source code by hand,  we came up with the idea to systematically collapse and rebuild Java execution state by processing Java code. The preliminary performance measurements on hand translated code were very promising. Since autumn 1998, we have been developing the class file post processor and its applications. In early 1999, we built our first prototype for persistent thread using  ODI's PSE/PSE Pro as the persistent engine. Our second prototype was developed in late 1999 for thread migration based on the Voyager framework. In early 2000, the third prototype using Java serialization was functional. It successfully saved and restarted several multithreading programs with complex synchronization states. The socket prototype was built in spring 2000 with several more thread migration demonstration applications.

JThread package

Demos