Loading...
Hristo_Penchev avatar Hristo_Penchev 389 Точки

[Technical Issue] Java Basics - Thread.Sleep за определен метод

Здравейте, колеги,

Имам следния въпрос: Може ли в безкраен цикъл да се въведе Tread.Sleep, но той да важи за точно определен ред (метод):

 

While (true){

...............

............

Thread.Sleep(75) carGenerator()

.......

......

}

Искам обаче циклът да върви с нормална скорост, а методът да не се изпълнява на всяко завъртане, а на определено време. Как може да стане?

 

 

Тагове:
0
Java Advanced 15/09/2014 16:57:19
a.angelov avatar a.angelov 1316 Точки

Сложи си някакъв count-ър и един if в while цикъла  - if да ти проверява дали count-ъра изпълнява определена зависимост /ти вече си измисли каква точно/ - ако я изпълнява да ти изпълнява и съответния метод, след това нулираш counter-а и всичко започва отново. Count-ъра декларирай извън цикъла и го увеличавай на всяка итерация вътре в цикъла.

0
15/09/2014 13:56:13
RoYaL avatar RoYaL Trainer 6849 Точки

Ако искаш нещо, което слийп-ва, да забави само собственото си изпълнение, а не на цялата процедура, трябва цялото това нещо да го отделиш в отделен Thread. Когато целия ти апликейшън е single threaded и кажеш на съответната (единствена) нишка да слийпне, ще слийпне всичко. 

Решението, което a.angelov е дал е валидно, до момента до който си сигурен, че всяка итерация минава за една секунда, така с каунтър можеш да го докараш до определен брой секунди, в противен случай ако нещо друго забави цикъла, примерно с 10 секунди, решението с каунтър няма да е валидно. Както енаписано в оригиналния пост "а методът да не се изпълнява на всяко завъртане, а на определено време."

Това, което предлагам, е да прочетеш как се случва конкурентността

 

4
15/09/2014 14:12:27
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.