2014-02-05 53 views
3

我不熟悉Java中的并发编程。我注意到Thread类的sleep()和currentThread()方法是静态的。由于使用多核CPU,许多线程可以同时运行,我想知道如何在执行中选择线程。谢谢。Java多线程:sleep和currentThread方法

+0

有趣的问题。我发现另一个SO帖子解释了这一点。 http://stackoverflow.com/questions/12216853 – armandino

回答

1

这是很容易在Javadocs for Thread发现:

对于currentThread()

返回当前执行的线程对象到参考。

sleep()

导致当前执行的线程睡觉

即调用两种方法的方法的Thread

+0

我还是不明白。假设我有一个同时运行4个线程的四核CPU。当我调用Thread.sleep()时,哪一个被发送到睡眠?线程0,线程1,线程2或线程3?线程调度程序如何做出选择?谢谢。 – user3067088

+0

线程调度程序不会进入图片来选择哪个人睡觉。无论哪个线程调用Thread.sleep()都会使自己进入睡眠状态。 – rgettman

+0

谁工作 - 他吃。哪个线程调用 - 该线程睡眠。 (它总是:)。) – RustamIS