Sự khác biệt giữa Giấc ngủ và Chờ Sự khác biệt giữa

Anonim

Ngủ Chờ

khi các máy tính sử dụng ngôn ngữ nhân tạo để tạo ra các chương trình, kiểm soát chúng và cho phép chúng truyền đạt các hướng dẫn và các thuật toán hiện đại. Ngôn ngữ này được gọi là ngôn ngữ lập trình.

Trước sự xuất hiện của máy tính, các ngôn ngữ lập trình đã được sử dụng trong các khung dệt và cây đàn pianos. Khi sử dụng máy tính trở nên phổ biến hơn, bây giờ đã có một số ngôn ngữ lập trình đang được sử dụng.

Có một số ngôn ngữ máy tính bao gồm các ngôn ngữ bậc cao như: BASIC, C, C ++, Fortran, Pascal và Java. Mỗi máy ảo và CPU có ngôn ngữ máy tính riêng của mình, mỗi điểm đều có điểm yếu và điểm mạnh riêng của nó, và mọi máy ảo chạy một chủ đề khi bắt đầu. Chủ đề này thực thi mã ứng dụng trong chương trình. Nó có thể làm cho một chương trình chạy nhanh hơn và giúp đỡ trong hiệu suất và tính hữu dụng của chúng đặc biệt là khi nhiều luồng được sử dụng.

Các máy ảo, chẳng hạn như máy ảo Java, hỗ trợ một khái niệm đa luồng với các chủ đề ưu tiên cao hơn được thực hiện đầu tiên trên các chủ đề có mức độ ưu tiên thấp hơn đảm bảo sự phân chia hợp lý của quá trình xử lý thời gian.

Nó sử dụng các phương pháp quản lý sợi có thể tạo ra, kiểm soát và chấm dứt luồng điều khiển hoặc các luồng trong một không gian chia sẻ. Hai trong số các phương pháp quản lý thread là chờ đợi và các phương pháp ngủ.

Hai phương pháp này là riêng biệt. Phương pháp ngủ kiểm soát việc thực hiện của thread và trì hoãn các hành động tiếp theo trong khi các phương pháp chờ đợi không kiểm soát việc thực hiện các chủ đề để cho các chủ đề khác chạy.

Phương thức wait được định nghĩa trong lớp Object và gửi thread hiện tại vào trạng thái không runnable. Nó được sử dụng cùng với thông báo và notifyAll phương pháp để cho mã thực hiện của một đối tượng tạm dừng tạm thời và để tiếp tục nó sau này.

Nó hoạt động bằng cách gọi một đối tượng khóa và để cho luồng hiện tại đồng bộ với nó. Wait sẽ giải phóng khóa và sẽ đặt thread trong danh sách chờ đợi và để cho các chủ đề khác đồng bộ với nó gây ra chủ đề ban đầu để đánh thức. Lập trình xác định thời gian cụ thể khi thực hiện bắt đầu lại.

Phương pháp ngủ, mặt khác, được định nghĩa là một phương pháp tĩnh. Nó trì hoãn việc thực hiện các chủ đề chứ không phải các đối tượng cũng như đình chỉ thread mà đang được thực hiện. Nó gửi chủ đề hiện tại vào trạng thái không chạy được trong một khoảng thời gian. Nó có thể ảnh hưởng đến hành vi của các ứng dụng đa luồng vì nó giữ khóa đồng bộ hóa của luồng hiện tại. Một khi chủ đề là trong một khối đồng bộ, không có chủ đề khác có thể nhập vào khối.

Tóm tắt:

1. "Sleep" là một phương pháp quản lý thread được định nghĩa như là một phương pháp tĩnh trong khi "wait" là một phương pháp quản lý thread được định nghĩa trong lớp Object.

2. Ngủ là một phương thức thực hiện các luồng trong khi chờ đợi là một phương thức thực thi các đối tượng.

3. Ngủ giữ khóa đồng bộ hóa của chủ đề hiện tại và ảnh hưởng đến hành vi ứng dụng trong khi chờ đợi không.

4. Ngủ kiểm soát việc thực hiện các chủ đề và không cho phép các chủ đề khác trong một khối đồng bộ trong khi chờ đợi không kiểm soát việc thực hiện các chủ đề để cho các chủ đề khác chạy.