Я не очень хорошо знаком с алгоритмами мьютекса, поэтому не могу вам помочь строго в отношении параллелизма.Я, однако, заметил одну строку в вашем коде, которая объясняет, почему вы получаете перечисленные вами значения:
public class MyThread extends Thread{
// [...]
private static int count = 0;
Когда вы запускаете четыре потока, run()
вызывается четыре раза, увеличивая count
каждую итерацию.
Этот блок кода:
t[i].start();
int v = t[i].getCountValue();
System.out.println("count value:t["+i+"]"+v;
Следовательно, эффективно:
count++;
System.out.println("count value:t["+i+"]"+count);