В Python все совместно используется, за исключением функциональных локальных переменных (потому что каждый вызов функции получает свою собственную группу местных жителей, и потоки всегда являются вызовами отдельной функции.) И даже тогда, только сами переменные (имена, которые относятся к объектам) локальны для функции; сами объекты всегда глобальны, и что-либо может относиться к ним. Эти Thread
объект для конкретного потока не является специальным объектом в этом отношении. Если Вы храните эти Thread
объект где-нибудь, все потоки могут получить доступ (как глобальная переменная) тогда, все потоки могут получить доступ к тот одному Thread
объект. Если Вы хотите атомарно изменить что-нибудь , что Вы только создали в этом очень тот же поток и не сохранили нигде другой поток, может достигнуть его, необходимо защитить его блокировкой. И все потоки должны, конечно, совместно использовать это очень та же блокировка, или это не было бы очень эффективно.
, Если Вы хотите фактическую локальную память потока, это - то, где threading.local
входит. Атрибуты threading.local
не совместно используются потоками; каждый поток видит только атрибуты, которые он сам поместил туда. Если Вам любопытно на предмет его реализации, источник находится в _threading_local.py в стандартной библиотеке.
Зависит от того, что вы подразумеваете под «автоматическим тестовым развертыванием». Если вам нужно только проверить успешность развертывания,
Если вы хотите провести некоторые тесты CI,
Чтобы склеить все вместе, используйте Maven (мой выбор), Ant или Groovy.
Я не нашел хорошего способа сделать это с JBoss 4.x, кроме написания сценария для выполнения различных шагов. После запуска сервера подождите достаточно долго, пока службы JBoss запустят и развернут приложение, затем проверьте, что основные компоненты вашего приложения зарегистрированы в JNDI.
Я нашел несколько ссылок, которые могут помочь сделать это с помощью JBoss 5 :
Я собирался предложить вам написать свой сценарий как плагин Hudson, но, возможно, вы могли бы использовать это вместо: JBoss JPBM Plugin for Hudson
Используйте Cargo для автоматического цикла «(загрузка сервера), запуск сервера, развертывание приложения, запуск тестов, удаление развертывания, останов сервера». Плагин Maven Cargo хорошо справляется с выполнением интеграционных тестов с использованием Surefire. поддерживает большинство серверов приложений, включая JBoss 4.
Cargo предоставляет следующие инструменты и API: