Looking up IP

Preview:

DESCRIPTION

Looking up IP. 357335 - Network programming Asst. Prof. Dr. Choopan Rattanapoka. ทบทวน OSI layer. Application. Presentation. โปรแกรม network. Session. Transport. TCP, UDP. Network. IP. Data Link. Ethernet. Physical. UTP. Ethernet Header. Preamble. Dst MAC. Src MAC. Type. - PowerPoint PPT Presentation

Citation preview

JAVA THREAD 2030523313 - Network programmingAsst. Prof. Dr. Choopan Rattanapoka

DeadLock (1) Deadlock ท่ีสถานการณ์ท่ีเมื่อมี thread จำานวนตัง้แต่ 2 ตัวขึ้นไป ถกู

block ตลอดเวลาเพื่อรอกันเอง

Deadlock (2)

Producer-Consumer Problem

ปัญหา producer-consumer problem คือ ผู้ผลิต (producer) ผลิตสนิค้าแล้วนำาไปเก็บในโกดังสนิค้า

(warehouse) ผู้บรโิภค (consumer) จะนำาสนิค้าออกมาจากโกดัง Warehouse จะเก็บสนิค้าได้แค่ 1 ชิน้ Producer จะต้องรอ ไมผ่ลิตของถ้าโกดังเต็ม Consumer จะต้องรอ ไมน่ำาสนิค้าออกจากโกดังถ้าโกดังวา่ง

เวลาในการผลิตหรอืนำาสนิค้าออกจะสุม่ระหวา่ง 0 – 999 ms

warehouse

Producer Consumer

Class : Warehouse (v.1)

Class: Producer (v.1)

Class: Consumer (v.1)

Class : ProducerConsumer (main)

Deadlock…??!!

เขยีนผิดตรงไหน เนี่ย ??!

แก้: Warehouse (v.2)

แก้: Producer (v.2)

แก้: Consumer (v.2)

คิดยงัไงกับโปรแกรม น้ี ??

Wait/Notify/NotifyAll Thread เมื่อจำาเป็นจะต้องรอขอ้มูลอะไรท่ีอาจจะกินเวลา สามารถ

เรยีกใชง้านเมธอด wait() เพื่อใหห้ยุดรอจนกวา่จะมกีารแจง้จากThread อ่ืน

notify() เป็นเมธอดสำาหรบัสง่สญัญาณให้ Thread 1 ตัว เพื่อ ใหต่ื้นจากการ wait()

notifyAll() เป็นเมธอดสำาหรบัสง่สญัญาณใหท้กุ Thread ท่ี อยูใ่นสถานะ wait ใหต่ื้นขึ้นเพื่อทำางาน

แก้: Warehouse (v.3) ใช้ Class Producer และ Consumer ของ

v.1

ปัญหา Classic Dining Philosophers

มนีักปรชัญาอยู่ 5 คน นัง่บนโต๊ะกลม มสีอ้มอยูทั่ง้หมด 5 อัน นักปรชัญาจะมวีงการทำางานคือ

คิด (think) หวิ (hungry) กิน (eat)

การท่ีนักปรชัญาจะกินได้ จะต้องหยบิสอ้มด้านซา้ย และด้านขวา ของตัวเองเท่านัน้ และต้องหยบิได้ทัง้ 2 อันถึงจะสามารถกินได้

ตัวชว่ย : ถ้าต้องการกินแล้วไมไ่ด้สอ้มทัง้ 2 อันใหก้ลับไปคิดต่อ

Recommended