Що таке потоки java, блог тільки про java
Статичний метод sleep () класу Thread реалізує затримку на задану кількість мілісекунд.
Виклик Thread.sleep () не створює нового потоку, цей статичний метод класу Thread тимчасово призупиняє дію поточного потоку.
Метод sleep () може згенерувати виключення InterruptedException.
Якщо ви запустите цю програму, то м'яч буде стрибати майже чудово, однак при цьому він повністю захопить управління програмою. Якщо вам набридне спостерігати рух м'яча до того, як він виконає 1000 рухiв, і ви клацнете на кнопці Close (Закрити). м'яч все одно продовжить грати. Ви не можете взаємодіяти з програмою до тих пір, поки м'яч не завершить свої стрибки.
Якщо ви уважно придивитеся до коду, наведеному в кінці цієї статті, то помітите виклик comp.paint (comp.getGraphics ()) всередині методу addBall класу BounceFrame. Це досить дивно - адже зазвичай ви викликаєте repaint () і дозволяєте AWT подбати про отримання графічного контексту і виконанні малювання. Але якщо ви спробуєте викликати comp.repaint () в цій програмі, панель ніколи не буде перемальована, тому що метод addBall () повністю захопив управління. Також зверніть увагу на те, що компонент розширює клас JPanel; це полегшує очищення фону.
Очевидно, що поведінка цієї програми нікуди не годиться. Воно ідеально підходить для програм, що виконують більш-менш тривалу роботу. Зрештою, коли ви Новомосковскете дані з мережевого з'єднання, часто трапляється мати справу з завданнями, які ви дійсно хотіли б перервати. Наприклад, припустимо, що ви завантажуєте величезну графічне зображення і, побачивши його частина, вирішуєте, що вам не потрібно бачити інше, звичайно ж, непогано мати можливість клацанням на кнопці Stop (Зупинити) або Back (Назад) перервати процес завантаження.