Object Oriented and Concurrent Programming in Java

[ an obj | an obj with d.b. | six objs | six objs with d.b. | sync. vs async. | Bounded buffer | Japanese ]
Java applets no longer run in any browser (since 2017).
Two working versions are available: the original 1998 .class files executed by a JVM written in JavaScript (Japanese page), and a JavaScript rewrite. Source files open in a black-background viewer.
(The first two thumbnails were stored as all-zero bytes and could not be recovered; they have been re-rendered by running the original 1998 bytecode.)

o Rotating an object


This 3D object is created directly using simple classes.
  1. Go
  2. Sample.html
  3. Sample.java
  4. WireFrame.java
  5. FreeSoR.java

In the next version, it can be processed using the double bufferings, then you can see it smoothly.

  1. Go
  2. Sample05.html
  3. Sample05.java

o Rotating objects


These 3D objects are created and executed concurrently. We create six objects on the screen.
  1. Go
  2. Sample1.html
  3. Sample1.java
  4. TR.java
The same additional bufferings are processed above programs.
  1. Go
  2. Sample15.html
  3. Sample15.java

o Synchronous v.s. Asynchronous


Using semaphores, it can be controled and changed its status by a button `Sync'. This version already includes the mechanism of double bufferings.
  1. Go
  2. Sample2.html
  3. Sample2.java

o Bounded Buffers


This applet emulates a bounded buffer. At first, the following one does not include double bufferings.
  1. Go
  2. Sample3.html
  3. Sample3.java

The other version of bounded buffer.
  1. Go
  2. Sample4.html
  3. Sample4.java

[ an obj | an obj with d.b. | six objs | six objs with d.b. | sync. vs async. | Bounded buffer | Japanese ]