An MIMD processor for Java and Net processing includes a plurality of “half-processors,” separate execution units, and memory caches. Each half-processor is an MIMD processing element having resources for instruction fetch and decode and for instruction stream context management, but excluding execution resources. In other words, the execution resources are removed from the processing elements (resulting in the half-processors) and provided as separate elements for being shared by all the half-processors. The execution units, memory caches, and half-processors are operably connected by two interconnection networks that use a priority-based communications scheme for administering shared access to the execution units and memory caches by the half-processors. The MIMD machine uses a Java and/or .Net instruction set and is capable of running both separate and combined Java and .Net instructions. An instruction stream management unit may be connected to the interconnection networks for controlling communications between the half-processors and shared resources.