cuốn sách gpt4 ai đã làm

jvm - Điều gì bắt đầu một luồng JVM?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-01 21:51:04 25 4
mua khóa gpt4 Nike

(Xin vui lòng sửa cho tôi nếu có bất kỳ sai sót nào)

Tôi biết được rằng khi bạn chạy một chương trình java bằng cách đưa ra lệnh java,

javaMyProg

Chương trình sẽ chạy trên JVM mới.

  • Điều gì tải chương trình vào JVM mới? Có phải JRE tạo ra chủ đề mới không?

  • Nếu mỗi chương trình chạy trong JVM riêng, chúng có thể giao tiếp với nhau không?

  • Trước đây tôi đã hỏi một câu hỏi về cách sử dụng JMX để gửi yêu cầu đến một chương trình java đang chạy cục bộ. Tôi thấy rằng nếu lệnh JMX được ban hành cục bộ thì tôi không cần số cổng. Câu trả lời là các ứng dụng khách (chẳng hạn như jconsole, jvisualvm, jprobe, v.v.) tìm kiếm các ứng dụng java đang chạy trên máy. Điều này không sao cả, nhưng xét đến việc ứng dụng khách sẽ chạy trong một JVM khác với ứng dụng mà nó đang cố gắng giám sát hoặc liên lạc, thì làm thế quái nào chúng có thể tương tác với nhau nếu không có số cổng (vì chúng không có trên cùng một lần chạy JVM)?

  • Nếu có hai chương trình đang chạy thì thường có 2 JVM. JVM có đang chạy trong cùng một quy trình JRE không? Phải chăng điều này cũng có nghĩa là hai JVM sẽ có thể giao tiếp với nhau?

Cảm ơn

câu trả lời hay nhất

  • Các chương trình (các lớp được biên dịch cụ thể hơn) được tải bởi một thành phần trong JVM được gọi là trình nạp lớp hệ thống. (Đọc thêm về trình nạp lớp đây ). JVM sử dụng các thư viện mã gốc (được tải bởi trình nạp lớp bootstrap) để tạo ra các luồng mới.
  • Họ có thể giao tiếp bằng cách sử dụng ổ cắm, RPC và các cơ chế IPC khác (thường được truy cập bằng thư viện gốc).
  • Không biết câu trả lời chính xác nhưng chắc chắn phải có cổng chuẩn.
  • Các phiên bản khác nhau của JVM là các quy trình khác nhau. Họ không chia sẻ gì trong bộ nhớ. (Tuy nhiên, nếu chạy trên cùng một hệ thống, chúng có thể chia sẻ các thư viện và tệp cấu hình được cài đặt bởi cùng một JRE. Điều này không khác gì việc chạy hai phiên bản Firefox, Emacs hoặc các ứng dụng khác trên cùng một hệ thống).

Về jvm - điều gì bắt đầu một luồng JVM? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4077765/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress