亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? person.java

?? JAVA 多線程不可多得的好例子
?? JAVA
字號:
// Person.java
// Person riding the elevator
package com.deitel.jhtp5.elevator.model;

// Java core packages
import java.util.*;

// Deitel packages
import com.deitel.jhtp5.elevator.event.*;

public class Person extends Thread {

   // identification number
   private int ID = -1;

   // represents whether Person is moving or waiting
   private boolean moving;

   // reference to Location (either on Floor or in Elevator)
   private Location location;

   // listener object for PersonMoveEvents
   private PersonMoveListener personMoveListener;

   // time in milliseconds to walk to Button on Floor
   private static final int TIME_TO_WALK = 3000;

   // types of messages Person may send
   public static final int PERSON_CREATED = 1;
   public static final int PERSON_ARRIVED = 2;
   public static final int PERSON_ENTERING_ELEVATOR = 3;
   public static final int PERSON_PRESSING_BUTTON = 4;
   public static final int PERSON_EXITING_ELEVATOR = 5;
   public static final int PERSON_EXITED = 6;

   // Person constructor set initial location
   public Person( int identifier, Location initialLocation )
   {
      super();

      ID = identifier; // assign unique identifier
      location = initialLocation; // set Floor Location
      moving = true; // start moving toward Button on Floor
   }

   // set listener for PersonMoveEvents
   public void setPersonMoveListener(
      PersonMoveListener listener )
   {
      personMoveListener = listener;
   }

   // set Person Location
   private void setLocation( Location newLocation )
   {
      location = newLocation;
   }

   // get current Location
   private Location getLocation()
   {
      return location;
   }

   // get identifier
   public int getID()
   {
      return ID;
   }

   // set if Person should move
   public void setMoving( boolean personMoving )
   {
      moving = personMoving;
   }

   // get if Person should move
   public boolean isMoving()
   {
      return moving;
   }

   // Person either rides or waits for Elevator
   public void run()
   {
      // indicate that Person thread was created
      sendPersonMoveEvent( PERSON_CREATED );

      // walk to Elevator
      pauseThread( TIME_TO_WALK );
      
      // stop walking at Elevator
      setMoving( false );

      // Person arrived at Elevator
      sendPersonMoveEvent( PERSON_ARRIVED );    
      
      // get Door on current Floor
      Door currentFloorDoor = location.getDoor();
      
      // get Elevator
      Elevator elevator = 
         ( (Floor) getLocation() ).getElevatorShaft().getElevator();

      // begin exclusive access to currentFloorDoor
      synchronized ( currentFloorDoor ) {

         // check whether Floor Door is open
         if ( !currentFloorDoor.isDoorOpen() ) {

            sendPersonMoveEvent( PERSON_PRESSING_BUTTON );
            pauseThread( 1000 );

            // press Floor's Button to request Elevator
            Button floorButton = getLocation().getButton();
            floorButton.pressButton( getLocation() );
         }      

         // wait for Floor door to open
         try {

            while ( !currentFloorDoor.isDoorOpen() )
               currentFloorDoor.wait();
         }
         
         // handle exception waiting for Floor door to open
         catch ( InterruptedException interruptedException ) {
            interruptedException.printStackTrace();
         }            

         // Floor Door takes one second to open
         pauseThread( 1000 );   

         // implicitly wait for exclusive access to elevator
         synchronized ( elevator ) { 

            // Person enters Elevator
            sendPersonMoveEvent( PERSON_ENTERING_ELEVATOR );

            // set Person Location to Elevator
            setLocation( elevator );

            // Person takes one second to enter Elevator
            pauseThread( 1000 );      

            // pressing Elevator Button takes one second
            sendPersonMoveEvent( PERSON_PRESSING_BUTTON );
            pauseThread( 1000 );

            // get Elevator's Button
            Button elevatorButton = getLocation().getButton();

            // press Elevator's Button
            elevatorButton.pressButton( location );

            // Door closing takes one second
            pauseThread( 1000 );
         }    
         
      } // give up exclusive access to Floor door

      // get exclusive access to Elevator
      synchronized( elevator ) {
         
         // get Elevator door
         Door elevatorDoor = getLocation().getDoor();
         
         // wait for Elevator door to open
         synchronized( elevatorDoor ) {
 
            try {
               
               while ( !elevatorDoor.isDoorOpen() )
                  elevatorDoor.wait();
            }
            
            // handle exception waiting for Elevator door to open
            catch ( InterruptedException interruptedException ) {
               interruptedException.printStackTrace();
            }       
            
            // waiting for Elevator's Door to open takes a second
            pauseThread( 1000 );
            
            // move Person onto Floor
            setLocation( elevator.getCurrentFloor() );
            
            // walk away from Elevator
            setMoving( true );
            
            // Person exiting Elevator
            sendPersonMoveEvent( PERSON_EXITING_ELEVATOR );
            
         } // release elevatorDoor lock, allowing door to close
         
      } // release elevator lock, allowing waiting Person to enter

      // walking from elevator takes five seconds
      pauseThread( 2 * TIME_TO_WALK );

      // Person exits simulation
      sendPersonMoveEvent( PERSON_EXITED );    
      
   } // end method run
   
   // pause thread for desired number of milliseconds
   private void pauseThread( int milliseconds )
   {
      try {
         sleep( milliseconds );
      }

      // handle exception if interrupted when paused
      catch ( InterruptedException interruptedException ) {
         interruptedException.printStackTrace();
      }
   } // end method pauseThread

   // send PersonMoveEvent to listener, depending on event type
   private void sendPersonMoveEvent( int eventType )
   {
      // create new event
      PersonMoveEvent event = 
         new PersonMoveEvent( this, getLocation(), getID() );

      // send Event to this listener, depending on eventType
      switch ( eventType ) {

         // Person has been created
         case PERSON_CREATED:
            personMoveListener.personCreated( event );
            break;

         // Person arrived at Elevator
         case PERSON_ARRIVED:
            personMoveListener.personArrived( event );
            break;

         // Person entered Elevator
         case PERSON_ENTERING_ELEVATOR:
            personMoveListener.personEntered( event );
            break;

         // Person pressed Button object
         case PERSON_PRESSING_BUTTON:
            personMoveListener.personPressedButton( event );
            break;

         // Person exited Elevator
         case PERSON_EXITING_ELEVATOR:
            personMoveListener.personDeparted( event );
            break;

         // Person exited simulation
         case PERSON_EXITED:
            personMoveListener.personExited( event );
            break;

         default:
            break;
      }
   } // end method sendPersonMoveEvent
}


 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞午夜鲁丝一区二区老狼| 99精品久久免费看蜜臀剧情介绍| 亚洲综合色婷婷| 1024成人网色www| 国产精品女人毛片| 日本一区二区动态图| 国产日韩欧美一区二区三区乱码 | 久久久影院官网| 日韩欧美成人激情| 欧美不卡一区二区三区四区| 欧美一区二区三区免费在线看| 91麻豆精品国产91久久久久久 | 欧美日韩一区二区三区在线看| 欧美性一级生活| 欧美日本一区二区三区四区 | 国产精品国产自产拍高清av| 专区另类欧美日韩| 亚洲中国最大av网站| 亚洲丶国产丶欧美一区二区三区| 亚洲午夜国产一区99re久久| 日韩精品一二三区| 久久99久久99小草精品免视看| 精品一区二区三区视频 | 久久这里只有精品6| 欧美激情中文不卡| 一区二区欧美视频| 蜜桃免费网站一区二区三区| 国产一区二区在线视频| va亚洲va日韩不卡在线观看| 色老汉av一区二区三区| 欧美军同video69gay| 久久综合九色综合97婷婷| 中文无字幕一区二区三区 | 蜜桃视频一区二区三区| 国产精品综合av一区二区国产馆| 成人的网站免费观看| 91黄色小视频| 欧美精品一区二区三区四区 | 亚洲精品国产a久久久久久| 亚洲成a人v欧美综合天堂下载| 蜜桃视频一区二区三区| 成人精品高清在线| 欧美日韩精品欧美日韩精品一综合| 日韩欧美国产高清| 中文字幕在线不卡一区| 天天操天天综合网| 成人免费看的视频| 欧美人妇做爰xxxⅹ性高电影| 久久亚洲免费视频| 亚洲一区二区三区三| 九九在线精品视频| 在线观看亚洲专区| 久久综合久久综合久久| 亚洲国产一二三| 国产寡妇亲子伦一区二区| 欧美性猛片xxxx免费看久爱| 久久久www免费人成精品| 亚洲综合免费观看高清在线观看| 国产美女娇喘av呻吟久久| 日本久久一区二区三区| 精品久久久久久综合日本欧美| 亚洲欧美激情视频在线观看一区二区三区| 日韩电影一区二区三区四区| 成人av先锋影音| 精品乱码亚洲一区二区不卡| 亚洲综合在线免费观看| 国产成人aaa| 91麻豆精品国产91久久久久| 亚洲男帅同性gay1069| 国产乱人伦偷精品视频免下载| 欧美天堂一区二区三区| 亚洲欧洲成人精品av97| 激情欧美一区二区| 欧美日韩国产首页| 亚洲乱码国产乱码精品精的特点 | 麻豆精品一区二区三区| 欧美影视一区在线| 亚洲视频综合在线| 国产剧情av麻豆香蕉精品| 制服丝袜av成人在线看| 亚洲免费在线视频一区 二区| 国产麻豆9l精品三级站| 欧美videos大乳护士334| 亚洲成人免费在线观看| 色悠悠亚洲一区二区| 中文av一区二区| 国产成人免费在线| 久久亚区不卡日本| 久久超级碰视频| 欧美一区二区大片| 日本网站在线观看一区二区三区 | 中文字幕一区二区在线观看| 激情另类小说区图片区视频区| 欧美精品亚洲二区| 亚洲大型综合色站| 精品视频1区2区3区| 曰韩精品一区二区| 色综合天天天天做夜夜夜夜做| 中文字幕乱码久久午夜不卡| 大美女一区二区三区| 国产视频一区二区三区在线观看| 韩国精品免费视频| 久久久三级国产网站| 国产精品一区二区三区乱码| 久久亚洲一区二区三区明星换脸| 久久99久久99| 久久先锋影音av| 国产成人av一区二区| 国产欧美日韩在线看| 成人毛片在线观看| 中文字幕日本乱码精品影院| 91免费观看国产| 一区二区成人在线| 欧美日韩第一区日日骚| 日韩1区2区3区| 精品不卡在线视频| 国产91丝袜在线播放九色| 国产欧美精品国产国产专区| 高清beeg欧美| 亚洲欧洲色图综合| 在线视频欧美精品| 视频一区二区国产| 亚洲精品一区二区三区影院 | 欧美日韩一区二区三区视频| 午夜激情综合网| 日韩欧美国产精品一区| 国产成人av电影在线播放| 中文字幕av一区二区三区高| 91网站最新地址| 亚洲成人激情综合网| 欧美mv日韩mv国产网站| 国产69精品久久99不卡| 一区二区三区美女| 欧美一级理论性理论a| 国产福利一区二区| 亚洲综合图片区| 欧美v国产在线一区二区三区| 丰满放荡岳乱妇91ww| 一区二区三区四区在线| 欧美一区二区二区| 盗摄精品av一区二区三区| 亚洲国产乱码最新视频 | 亚洲影院在线观看| 精品免费99久久| 99麻豆久久久国产精品免费优播| 一级女性全黄久久生活片免费| 欧美一区二区三区在线看| 豆国产96在线|亚洲| 亚洲自拍偷拍麻豆| 久久久久9999亚洲精品| 色呦呦一区二区三区| 免费成人深夜小野草| 亚洲欧洲一区二区三区| 日韩你懂的在线播放| 91视频.com| 久久精品久久精品| 一区二区三区自拍| 久久综合九色综合欧美亚洲| 91久久免费观看| 国产老肥熟一区二区三区| 亚洲成在人线免费| 亚洲国产激情av| 欧美一区二区三区免费观看视频 | 精品精品欲导航| 在线观看国产91| 国产福利视频一区二区三区| 亚州成人在线电影| 国产精品久久久久天堂| 日韩欧美一区二区视频| 色偷偷一区二区三区| 国模一区二区三区白浆| 天堂蜜桃一区二区三区| 中文字幕一区二区三区在线不卡| 日韩一区二区在线观看| 91黄色在线观看| 北岛玲一区二区三区四区| 韩国v欧美v日本v亚洲v| thepron国产精品| 久久99久久99精品免视看婷婷 | 人禽交欧美网站| 亚洲精品写真福利| 中文字幕精品一区| 久久亚洲一级片| 精品国偷自产国产一区| 欧美久久久久久久久| 在线精品视频免费观看| 成人a区在线观看| 国产高清成人在线| 久久99热99| 蜜臀久久99精品久久久画质超高清| 亚洲女性喷水在线观看一区| 国产亚洲欧美一级| 精品粉嫩aⅴ一区二区三区四区| 欧美乱熟臀69xxxxxx| 欧美日本在线播放| 欧美日韩一级片在线观看| 欧美视频中文字幕| 欧美色图12p| 欧美午夜不卡视频| 欧美性大战久久|