Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Безопасные методы


Автор: skhilkov 29.6.2006, 12:25
Разъясните, пожалуйста, насчет методов InvokeAndWait и InvokeLater(только не надо давать ссылки на sunовскую доку про это - я ее читал). Так вот что меня интересует - помогут ли методы для исполнения некоторого кода в безопасном потоке, например, когда небезопасные методы апплета вызываются через JavaScript 

Автор: powerOn 29.6.2006, 13:31
Цитата(skhilkov @  29.6.2006,  13:25 Найти цитируемый пост)
Так вот что меня интересует - помогут ли методы для исполнения некоторого кода в безопасном потоке


Эти методы выполнят код твоего Runnable в потоке рассылки сообщений (EventDispatchThread). Причем первый, приостановит вызывающий поток (не сделает возврат метода) пока код твоего Runnable не завершится. Втрой отправит "заявку на выполнение" твоего кода в EventDispathThread и сразу же вернет управление.

А какой безопасности ты хочешь добиться? Что и от чего нужно защитить? 
 

Автор: skhilkov 29.6.2006, 13:35
Просто бывает, что если выполняешь какой-нибудь метод апплета из JavaScript, например, который работает с файлами, так вот, в некоторых браузерах выскакивает исключение типа access denied и все, а если я использую эти методы, то все получается, вот и хочу получше разобраться 

Автор: powerOn 29.6.2006, 13:52
Цитата(skhilkov @  29.6.2006,  14:35 Найти цитируемый пост)
например, который работает с файлами, так вот, в некоторых браузерах выскакивает исключение типа access denied и все,


Врядли это тебе поможет, скорее ошибка в правах доступа: апплету запрещено выполнять некоторые операции с файлами. 

Данные методы (InvokeAndWait и InvokeLater) хороши когда необходимо синхронизировать какие-либо действия над графическими компонентами, например прорисовку или изменение данных. Т.е можно менять компонент и не бояться, что другой поток в это же время выполняет аналогичные операции над этим же компонентом. Т.е. 2 потока хотят поменять модель компонента за несколько шагов, каждый из них отправляет заявку на выполение кода изменения в поток рассылки сообщений, который в свою очередь выполнить каждую из заявок поочереди - что синхронизирует изменения модели.

 

Автор: skhilkov 29.6.2006, 13:57
Спасибо, а никто не знает где можно про это более углубленно прочитать? 

Автор: powerOn 29.6.2006, 14:01
Swing: Эффектные пользовательские интерфейсы. Портянкин И.

Я читал эту и Sun - доку. 

Автор: batigoal 29.6.2006, 14:15
Немного есть в этой теме: http://forum.vingrad.ru/index.php?showtopic=50027 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)