Как одна программа используется несколькими клиентами? (Значит ли несколько клиентских потоков совместно использовать одни и те же объекты?)

«Как к одной программе обращаются несколько клиентов»?

«Любая копия программы, сгенерированная для каждого клиента, потребляет программу»?

Вопрос слишком простой, но все же немного запутанный.
Рассмотрим фрагмент псевдокода ниже

Class Some {
// Some code
}
main(){
Some s= new Some();
}

Итак, теперь, если клиент попытается получить доступ к этому коду, будет создан объект ‘s’.

Вопрос в том, будет ли этот объект создан для каждого клиента (или клиентского запроса), который обращается к коду, или этот объект будет создан один раз в жизни (средства на развертывание кода)?

Я знаю, что сервлеты (или любой другой контейнер, основанный на языке) используются для обработки клиентских запросов, но я спрашиваю о программе, которую мы пишем, для использования несколькими клиентами.

0

Решение

Чтобы понять концепцию, я думаю, вам нужно будет углубиться в детали Java Memory Model. я думаю это ссылка отличный ресурс для начинающих.

Class Some {
// Some code
}
main(){
Some s= new Some();
}

Вопрос в том, будет ли этот объект создан для каждого клиента (или клиентского запроса), который обращается к коду, или этот объект будет создан один раз в жизни (средства на развертывание кода)?

Когда вы передаете / получаете доступ к s, это передает значение s, которое является ссылкой на некоторый объект. (само s передается по значению), которое не изменит того, на какой объект ссылается. Java строго передается по значению)

Когда вы изменяете значение в этом объекте с помощью s.someDataMember, то при повторном просмотре значения someDataMember другим клиентом вы увидите обновленное значение.

По сути, Java не копирует объекты, если вы действительно не попросите об этом. Теперь я имею в виду это в контексте того же процесса JVM.

Теперь рассмотрим, что этот объект является неизменным объектом.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]