Я понимаю потоки как абстрактную концепцию, которая представляет собой набор шагов, выполняемых процессором с порядком и значением.
Это не то, что я вижу. Поток административной структуры, необходимой для выполнения независимого кода. Это могут быть потоки ядра, пользовательские потоки или в этом случае потоки VM. Я не уверен, что вы подразумеваете под «порядком и значением», но поток может выполнять любой код. По словам this page:
Поток является основной единицей использования процессора, состоящий из счетчика команд, стек, и набор регистров,
Хорошее определение (и идентификатор потока). ,
Однако объект потока java (а также классы и структуры, образованные другими языками программирования) не представляет поток полностью, поскольку он передает управление мониторам и не выполняет весь абстрактный поток.
Я не уверен, что понимаю вашу точку зрения. Объект Thread
- это способ Java для администрирования независимого объекта. Он управляет фреймом стека, помогает с планированием и администрированием VM и тесно связан с структурами собственных потоков, а также с планировщиком ОС. Что касается Java, то объект Thread
, безусловно, является потоком, хотя, быть может, техническим, может быть, вы можете сказать, что это поток после его запуска. Но в любом случае этот термин не вводит в заблуждение - по крайней мере, не для меня.
Это то же самое, что Java File
представляет собой файл на диске. Конечно, это не технический файл, а для Java - это класс, который управляет доступом к файлу диска. То же самое с Socket
, InputStream
, Console
и любым другим классом, привязанным к внешнему объекту ОС.
Кроме того, являются системные процессы ОС (хотя реализованы в C-структурах), аналогичные потокам Java?
Э-э, как? Не уверен, что вы подразумеваете под «системным процессом». Может быть, вы говорите о потоках ядра? Несмотря на это, ответ сильно зависит от ОС. Не все OS 'написаны на C, очевидно. Конечно, JVM работает с родной стороной Java и ОС для планирования и управления потоками. После того, как был запущен объект Thread
с большинством ОС, существует связь 1 к 1 между классом Java и пользовательским потоком, управляемым ОС.
C имеет потоки, которые работают аналогично Java (запрет на то, что C не использует классы и объекты). – AntonH