线程顺序执行的问题

有如下代码:发现输出的结果不是顺序的,不是从小到大,如何才能保证是从小到大的?

[code]
public class TestSync {

/**
 * @param args
 */
public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
        new Thread(new Thread1()).start();
    }

}

public int getNum(int i) {
    synchronized (this) {
        i++;
    }
    return i;
}

static class Thread1 implements Runnable {
    static Integer value = 0;
    @Override
    public void run() {
        TestSync ts = new TestSync();
        value = ts.getNum(value);
        System.out.println("thread1:" + value);
    }
}

}
[/code]