2010-02-25 38 views

Trả lời

16

Các luồng Java có thể được triển khai theo bất kỳ cách nào phù hợp với đặc điểm kỹ thuật. Đặc điểm kỹ thuật không yêu cầu thực hiện cụ thể.

Có hiệu quả tất cả các máy tính để bàn hiện đại và/hoặc máy chủ JVM thực hiện các chủ đề Java làm luồng gốc. Điều đó có nghĩa rằng có chính xác 1 chuỗi gốc cho mỗi chuỗi Java và hệ điều hành thực hiện tất cả các lập lịch biểu, giống như nó làm cho một chương trình C, ví dụ.

Một số JVM cũ và có thể một số JVM cho các thiết bị với nguồn lực hạn chế có thể thực hiện chủ đề theo một cách mà số lượng các chủ đề có nguồn gốc sử dụng là nhỏ hơn so với số đề Java chạy (hoặc có thể 1). Những triển khai được cho là để thực hiện cái gọi là "chủ đề xanh". Trong trường hợp này bản thân JVM chịu trách nhiệm chuyển đổi nhiệm vụ và lên lịch, thay vì ủy nhiệm nhiệm vụ đó cho hệ điều hành.

+0

Có ai có thể cho tôi tham khảo về điều này không? –

+0

@espertus Mã nguồn tham khảo HotSpot JVM thực hiện có thể được tìm thấy tại http://openjdk.org –

5

Nó phụ thuộc vào việc triển khai JVM, tất nhiên, nhưng tôi nghĩ chúng giống nhau. Đó là, một chủ đề trong Java được thực hiện thông qua một chủ đề bản địa. Bạn có thể mong đợi/làm với các chủ đề Java tất cả các loại điều bạn có thể với chủ đề gốc.

0

Chủ đề Java và chuỗi chủ đề hoàn toàn khác nhau. Chủ đề gốc là một phần của nền tảng cơ bản (HĐH).

Chủ đề Java là một trong những tính năng của Ngôn ngữ Java để hỗ trợ đồng thời. Đặc tả Java kiểm soát API và hoạt động của các luồng Java. Các chủ đề Java cuối cùng sẽ được ánh xạ tới các luồng gốc trong khi thực thi chương trình java. Các chủ đề java cũng không cần phải có một đối tượng được ánh xạ với các chuỗi gốc.

0

Các chủ đề Java (lớp Thread và giao diện Runnable) là một API cấp cao hơn nhiều so với các luồng gốc trong các ứng dụng chia sẻ bộ nhớ. Tôi đề nghị cuốn sách này "Java Threads" bởi Oaks và Wong http://shop.oreilly.com/product/9780596007829.do. Thực tiễn phổ biến là triển khai giao diện Runnable, nhưng nó phụ thuộc vào phạm vi mã của bạn.