14
JAVA THREAD 2 030523313 - Network programming Asst. Prof. Dr. Choopan Rattanapoka

Looking up IP

  • Upload
    feoras

  • View
    38

  • Download
    0

Embed Size (px)

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

Page 1: Looking up IP

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

Page 2: Looking up IP

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

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

Page 3: Looking up IP

Deadlock (2)

Page 4: Looking up IP

Producer-Consumer Problem

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

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

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

warehouse

Producer Consumer

Page 5: Looking up IP

Class : Warehouse (v.1)

Page 6: Looking up IP

Class: Producer (v.1)

Page 7: Looking up IP

Class: Consumer (v.1)

Page 8: Looking up IP

Class : ProducerConsumer (main)

Deadlock…??!!

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

Page 9: Looking up IP

แก้: Warehouse (v.2)

Page 10: Looking up IP

แก้: Producer (v.2)

Page 11: Looking up IP

แก้: Consumer (v.2)

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

Page 12: Looking up IP

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

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

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

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

Page 13: Looking up IP

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

v.1

Page 14: Looking up IP

ปัญหา Classic Dining Philosophers

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

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

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

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