Access Thread from inside Runnable
Asked Answered
G

2

7

How can I access Thread object that is executing given Runnable? What I'd like to do is to call sleep() from within run() method.

Geode answered 13/8, 2012 at 14:29 Comment(1)
Sleep is static, there is no way to sleep an arbitrary thread... unless you own the OS stack.Tournai
D
22

If you need to sleep within a Runnable, you can simply call Thread.sleep(); inside the run method.

To access the thread that is running the Runnable, you can call Thread.currentThread(), but that is not necessary to call the sleep method, which is static.

Diencephalon answered 13/8, 2012 at 14:30 Comment(3)
yes, I should have guessed it'd be so trivial. Thanks for help anyway.Geode
Not necessary is too generous. It's not legal since you can not call sleep on a thread instance through a thread reference. You can only sleep your current thread through the static Thread.sleep();Flagpole
Well technically you can but it will still sleep the current thread.Diencephalon
B
7

you can always get the current Thread that your code is executing within by calling the static method Thread.currentThread().

But in your case, you don't need the thread itself because sleeping is controlled with the following static method:

Thread.sleep(1000L);
Borodino answered 13/8, 2012 at 14:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.