2012-04-18 2 views

ответ

4

Вам потребуется синхронизировать его при доступе к совместно используемым изменяемым данным. Если данные являются неизменяемыми или доступными только для чтения или в стеке, вы должны быть в порядке.

+1

Если я использую base64 в java, у него есть статический метод encodeBase64 (byte []). Если я напрямую получаю доступ к этой функции, используя имя cass, не будет проблемы – Ashwin

+0

Я спрашиваю об этом, потому что статическая функция является общей для всех объектов класса. Таким образом, будет только одна копия. – Ashwin

+0

Вам всегда нужно защищать общие, изменяемые данные - статические или нет. – duffymo

1

Это зависит от того, какой у вас статический метод, является ли он без гражданства или нет. Если он не имеет статуса и не ссылается на что-либо вне области вашего метода, он будет потокобезопасным.

+1

Если я использую base64 в java, у него есть статический метод encodeBase64 (byte []). Если я напрямую получаю доступ к этой функции, используя имя cass, не возникнет ли проблема? Зачем? – Ashwin

+0

Я спрашиваю об этом, потому что статическая функция является общей для всех объектов класса. Таким образом, будет только одна копия. – Ashwin

0

, если вы используете статический метод в сервлетах вам нужно, чтобы сделать их поточно с помощью Использование только локальные переменные, когда состояние переменной может изменяться или использовать статическую переменную, если они не изменить или использовать синхронизацию метод доступа

и вы можете безопасно выполнять потоки функций, реализуя интерфейс SingleThreadModle или конструкцию «synchronize».

Смежные вопросы