2014-02-02 2 views
-2

Привет, я работаю над личным проектом, и у меня есть следующая проблема, и я знаю, что я должен использовать потоки для этого, но любая помощь будет оцененаТемы в java?

Я хочу построить нить, которая спит в течение 2 секунд или 2000 мс а затем запускает методы через 2 секунды, как я могу это сделать. Я знаю, как сделать поток, который спит в течение 2 секунд, но не как я могу выполнить метод/функцию после 2 секунд

+0

Я попытался сделать нить, а затем выполнить метод сразу после запуска потока, который, как я знаю, неверен, но у меня нет лучших идей. – user3262911

+0

Вы читали какие-либо материалы по потоковому использованию Java? У вас есть googled на любых страницах? –

+0

Итак, вы хотите спать, а затем вызвать пользовательскую функцию? Почему бы вам просто не сделать это? –

ответ

2

Если вы вызываете сон (2000) в основной теме, все ваше приложение будет заблокировано :)

Трюк не в том, чтобы называть его основной темой. В Java есть что-то, что есть ScheduledExecutorService, что прекрасно подойдет вам. Здесь приведены примеры: link

Использование его позволит вам «отсылать» действия по вашему выбору с основного потока, создавая тем самым боковые потоки и планируя их выполнение с определенным временным смещением по вашему выбору.

Вам просто нужно создать класс, который реализует Runnable, а при реализации метода run сделайте все, что вам нужно. Единственный другой шаг - отправить экземпляры этих (или, возможно, других классов, если вам нужны разные «задания» для отправки) к создаваемому вами экземпляру ScheduledExecutorService.

0

Проведите нить (в течение требуемого периода) в петле, которую вы вставляете в метод run. Затем вызывается метод/функция в теле цикла. Я бы рекомендовал вам прочитать жизненный цикл нити.