Race condition
Race conditions arise in software when an application depends on the sequence or timing of processes or threads for it to operate properly. As with electronics, there are critical race conditions that result in invalid execution and bugs. Critical race conditions often happen when the processes or threads depend on some shared state. Operations upon shared states are critical sections that must be mutually exclusive. Failure to obey this rule opens up the possibility of corrupting the shared state.
Java Pathfinder
The following system under test contains a simple race condition between two threads accessing the same variable codice_1 in statements (1) and (2), which can lead to a division by zero exception if (1) is executed before (2)
public class Racer implements Runnable {