我有这个问题,我的代码中引入的暂停不会以串行方式执行。例如:
doSomething();
Thread.sleep(1000); //try and catch omitted for simplicity
doSomethingElse();
当我执行代码时,它就像订购时一样运行:
Thread.sleep(1000);
doSomething();
doSomethingElse();
关于可能导致运行时重新组织的线程代码的性质,我缺少什么?这并不总是会发生,只有一些代码会继续Thread.sleep()
。如果没有对我的doSomething()
代码过于具体,我想知道是否有人可以解释可能导致此问题的doSomething()
中可能存在的行为类型。我认为doSomething()
中有一些我看不到的线程代码,因为它在库中被遮挡了。所以,我认为一个串行进程实际上与其他一些线程并行运行。
想法?