Logo vi.removalsclassifieds.com

Sự khác biệt giữa Ngủ và Chờ (Có Bàn)

Mục lục:

Anonim

Java có một số phương thức để thực hiện các hành động nhất định. Phương thức là một nhóm mã, chỉ chạy khi nó được gọi; và có thể trả về hoặc không thể trả lại một kết quả.

Các phương pháp như ngủ và chờ được sử dụng cho đa luồng. Cả hai đều tạm dừng và gửi luồng vào trạng thái chờ, nhưng có sự khác biệt lớn về chức năng.

Ngủ vs Chờ

Sự khác biệt giữa phương thức sleep () và wait () là phương thức sleep () được sử dụng trong chương trình để tạm dừng việc thực thi luồng hiện tại trong một khoảng thời gian cụ thể trong khi phương thức wait () được sử dụng trong chương trình để tạm dừng hoặc tạm dừng. luồng hiện tại cho đến khi các phương thức cụ thể được gọi.

Trong quá trình sử dụng phương pháp ngủ, luồng hiện tại không mất quyền sở hữu màn hình. Sleep là một phương thức tĩnh và là một phần của luồng lớp. Sau khi hết thời gian chờ, luồng sẽ trở lại trạng thái có thể chạy ban đầu. Nó đảm bảo sử dụng hết CPU trong khi chờ đợi.

Trong khi phương thức wait () được sử dụng trong chương trình Java để ra lệnh cho luồng hiện tại đợi, cho đến khi một luồng khác không được gọi cho đối tượng đó. Sau đó, luồng tiếp tục thực hiện, khi nó có được quyền kiểm soát của màn hình. Nó không phải là một phương thức tĩnh không giống như sleep, và là một phần của lớp đối tượng.

Bảng so sánh giữa Ngủ và Chờ

Các thông số so sánh Ngủ Đợi đã
Lớp học Phương thức ngủ là một phần của lớp luồng Phương thức chờ là một phần của lớp đối tượng
Loại phương pháp Ngủ là một phương pháp tĩnh Wait không phải là một phương thức tĩnh
Kỹ thuật gọi điện Phương thức ngủ có thể được gọi từ bên ngoài ngữ cảnh đồng bộ Phương thức chờ chỉ có thể được gọi từ ngữ cảnh được đồng bộ hóa
Khóa phát hành Phương thức ngủ không mở khóa trên đối tượng, trong thời gian chờ được chỉ định, trong khi đồng bộ hóa Phương thức Wait giải phóng khóa trên đối tượng, để có cơ hội thực thi, trong quá trình đồng bộ hóa
Tờ khai public static void sleep () public Final void wait ()

Ngủ là gì?

Luồng ngủ () là phương thức tĩnh trong chương trình Java sẽ tạm dừng luồng hiện tại và đặt nó ở trạng thái chờ trong một khoảng thời gian quy định. Khi trạng thái chờ và thời gian kết thúc, điều kiện luồng được thay đổi thành trạng thái có thể chạy được. Và sau đó đợi CPU thực thi thêm.

Mục đích của phương pháp này là tạo ra độ trễ trong vài giây trong chương trình và đồng thời sử dụng tối đa CPU. Nếu hệ thống bận hoặc quá tải thì thời gian chờ hoặc tạm dừng sẽ nhiều hơn và nếu không thì sẽ ít hơn hoặc bằng thời gian thực.

Kiểu trả về của phương thức sleep có thể nói là void, vì nó không trả về bất kỳ giá trị nào. Chuỗi ngủ không làm mất màn hình hoặc khóa chuỗi mà nó đã có được. Nếu trong bất kỳ trường hợp nào, chế độ ngủ bị xáo trộn, chuỗi sẽ ném Interrupt_Exception. Thời lượng thực tế mà luồng sẽ ngủ thường phụ thuộc vào bộ lập lịch và bộ định thời hệ thống là một phần của hệ điều hành.

Cú pháp của phương thức sleep là - public static void sleep (dài mili giây)

public static void sleep (dài mili giây, int nano giây)

Ở đây mili giây và nano giây là thời gian mà chuỗi sẽ ngủ.

Chờ đợi là gì?

Wait () là một phương thức được sử dụng để giao tiếp giữa các luồng. Bất cứ khi nào luồng wait () được sử dụng, luồng gọi hoặc luồng hiện tại sẽ bị tạm dừng và tạm dừng, cho đến khi các phương thức như thông báo () hoặc thông báoAll () được gọi trong hệ thống.

Phương thức thông báo () sẽ đánh thức chủ đề được chỉ định trong khi thông báoAll () có thể áp dụng cho mọi chủ đề. Khi được đồng bộ hóa, phương thức chờ sẽ loại bỏ khóa các tài nguyên. Không có giá trị trả về của phương thức Wait, do đó có thể nói rằng nó trả về giá trị void.

Hai ngoại lệ của phương thức Wait là Interrupt_Exception (khi luồng hiện tại bị gián đoạn trong khi nó ngủ) và IllegalMonitorStateException (khi luồng hiện tại không phải là chủ sở hữu của đối tượng trên màn hình).

Phương thức Wait là một phần của lớp đối tượng. Phương pháp này chỉ có thể áp dụng và có thể được gọi qua một khối được đồng bộ hóa. Phương pháp chờ đặt màn hình không bị treo hoặc bị khóa trong quá trình đồng bộ hóa. Và phương thức Wait độc quyền cho phép nhiều luồng được đồng bộ hóa lần lượt truy cập vào cùng một đối tượng.

Cú pháp của phương thức Wait là - public final void wait ()

Sự khác biệt chính giữa Ngủ và Chờ

Sự kết luận

Phương thức Sleep and Wait là phương thức gốc của Java. Và cả hai đều được sử dụng rộng rãi để làm cho luồng đang diễn ra hiện tại chuyển sang trạng thái không chạy được. Cả hai phương pháp đều được sử dụng để đa luồng trong chương trình.

Phương thức ngủ cung cấp tùy chọn khóa màn hình độc quyền trong một khoảng thời gian cụ thể thường kéo dài từ nano giây đến mili giây. Nhưng phương thức chờ sẽ khóa hoặc tạm dừng màn hình cho đến khi một phương thức khác được gọi, do đó khoảng thời gian không còn cụ thể như trong khi sử dụng phương thức ngủ.

Chúng phân biệt với nhau về chức năng cụ thể như lớp, phương thức, đồng bộ hóa và thời gian giữ và phát hành khóa và một số tham số khác. Thường thì các lập trình viên bối rối không biết phương thức nào có thể lý tưởng cho quá trình ngủ của luồng. Việc sử dụng các phương pháp phụ thuộc vào các yêu cầu như nhu cầu, mức độ khẩn cấp và khoảng thời gian của luồng hiện tại.

Sự khác biệt giữa Ngủ và Chờ (Có Bàn)