The purpose of this paper consists of demonstrating animplementation methodology of sequential and distributed simulations using Java programming: two specificalgorithms based on Java threads (single-channel and multi-channel algorithms) are proposed. From this point of view, the events are timely ordered into events lists and controlled by threads with respect to clock cycles. Eachthread possesses its event list. The threads are globallytimed in the sequential case by one clock, meanwhile in thedistributed case they are locally clocked. The mainapplication that is targeted by this work is the simulation of hardware/software systems, where different components aredescribed by threads and obey a multi-clocked system.