Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่างเมธอด sleep() และ wait() ใน Java


ในโพสต์นี้ เราจะเข้าใจความแตกต่างระหว่างวิธีการพักเครื่องและรอใน Java

เดี๋ยวก่อน

  • มันเป็นของคลาส 'Object'

  • วิธีการนี้จะปลดล็อคเมื่ออยู่ในกระบวนการซิงโครไนซ์

  • มันไม่ใช่วิธีการแบบคงที่

  • เรียกจากบริบทที่ซิงโครไนซ์เท่านั้น

  • วิธีนี้มีวิธีการโอเวอร์โหลดสามวิธี คือ

    • รอ()

    • รอ(หมดเวลานาน)

    • รอ (หมดเวลานาน หน่วยเป็นนาโนวินาที)

นอนหลับ

  • มันเป็นของคลาส 'เธรด'

  • โดยจะไม่ปลดล็อกวัตถุเมื่อทำการซิงโครไนซ์

  • มันเป็นวิธีการแบบคงที่

  • จากบริบทที่ซิงโครไนซ์ ไม่จำเป็นต้องเรียกเมธอด "สลีป"

  • วิธีนี้มีวิธีการโอเวอร์โหลดสามวิธี ได้แก่ −

    • sleep(long millis) มิลลิวินาที:มิลลิวินาที

    • สลีป (มิลลิวินาทียาว int นาโน) นาโน:นาโนวินาที