вызов функции Java порождает новый поток для его выполнения? - PullRequest
0 голосов
/ 24 июня 2010

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

Ответы [ 4 ]

4 голосов
/ 24 июня 2010

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

0 голосов
/ 24 июня 2010

Как сказал Дейв Джонстон, нет - если вы явно не создадите новый поток.

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

Существует разница между потоками и процессами.Потоки - это решение Java для многозадачности (и это тоже хорошее решение).Процесс - это вещь операционной системы.В зависимости от вашей JVM, новый поток может или не может работать в новом процессе.

В любом случае все потоки в JVM обращаются к одному и тому же пространству памяти.Немного параноидальное замечание: в памяти JVM есть некоторые проблемы с синхронизацией, связанные с кешами памяти на уровне процессора - смотрите документацию о ключевом слове volatile, если вы делаете серьезное многопоточное кодирование.отдельная память, например, если вы запускаете отдельные команды из командной строки.

0 голосов
/ 24 июня 2010

Когда вы вызываете метод, обработка просто переходит в этот метод.Это общее правило практически для всех языков.

0 голосов
/ 24 июня 2010

Вызываемая функция выполняется в том же потоке.

Совет: вы должны начать изучать программирование с языка C. Тогда функционирование Java (или чего-либо еще) не смущает вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...