org.wegra.thread
Class Mutex

java.lang.Object
  extended byorg.wegra.thread.Lock
      extended byorg.wegra.thread.Mutex

public final class Mutex
extends org.wegra.thread.Lock

¹ÂÅØ½º(»óÈ£¹èÁ¦ ¼¼¸¶Æ÷¾î)¸¦ ±¸ÇöÇÑ Å¬·¡½ºÀÌ´Ù. ¹ÂÅØ½º´Â ÇÑ ¼ø°£¿¡ ¿ÀÁ÷ ÇϳªÀÇ ½º·¹µå¸¸ÀÌ Á¡À¯ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ¾î¶² ½º·¹µå¿¡¼­ ¹ÂÅØ½º¸¦ ¿©·¯ ¹ø ¿¬ÀÌ¾î ¾ò¾ú´Ù¸é ¾òÀº ¸¸Å­ÀÇ ¹ÂÅØ½º¸¦ ³õ¾Æ ÁÖ¾î¾ß ÇÑ´Ù.

Version:
1.0 (2001-07-26)
Author:
wegra(Bok-Youn Lee)

Constructor Summary
Mutex()
           
 
Method Summary
 boolean acquire()
          ÆíÀÇ»ó ¸¸µå·¯³õÀº ¸Þ¼Òµå·Î acquire(long) ¸Þ¼Òµå¿¡ ÀÎÀÚ°ªÀ¸·Î LockConstants.TIMEOUT_FOREVERÀ» ÁØ °æ¿ì¿Í µ¿ÀÏÇÏ´Ù.
 boolean acquire(long timeout)
          ¹ÂÅØ½º¸¦ ¾ò´Â´Ù.
 int getID()
          ÇØ´ç ¼¼¸¶Æ÷¾î °´Ã¤ÀÇ °íÀ¯ ID¸¦ ¹Ýȯ
 void release()
          ¹ÂÅØ½º¸¦ ³õ´Â´Ù.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Mutex

public Mutex()
Method Detail

acquire

public boolean acquire(long timeout)
                throws java.lang.InterruptedException,
                       TimeoutException
¹ÂÅØ½º¸¦ ¾ò´Â´Ù. °°Àº ½º·¹µå¿¡ ÀÇÇØ¼­¶ó¸é ¹ÂÅØ½º´Â ¿©·¯ ¹ø ¾òÀ» ¼ö ÀÖ´Ù. ¶ÇÇÑ, ¾òÀº ¸¸Å­ÀÇ ÇØ´ç ¹ÂÅØ½º¸¦ ³õ¾Æ ÁÖ¾î¾ß ÇÑ´Ù. ¹ÂÅØ½º¸¦ ¾òÀ¸·ÁÇÑ ½º·¹µå´Â ¹ÂÅØ½º¸¦ ¾ò±â Àü±îÁö ºí·ÏÅ· µÈ´Ù.

Parameters:
timeout - ¸¸¾à ÀÌ °ªÀ¸·Î 0À» ÁÖ¸é ÀÌ ¸Þ¼Òµå´Â (@link acquireNonBlocking)¿Í µ¿ÀÏÇÑ ÀÏÀ» ¼öÇàÇÑ´Ù. À½¼ö°ªÀÌ ÁÖ¾îÁö¸é IllegalArgumentException ÀÌ ¹ß»ýÇÑ´Ù. ½Ã°£ Á¦ÇÑÀ» ¾ø¾Ö·Á¸é LockConstants.TIMEOUT_FOREVER¸¦ »ç¿ëÇÑ´Ù.
Returns:
¸¸¾à ŸÀӾƿôÀÌ 0À̾úÀ» ¶§ ¶ôÀ» ¾òÁö ¸øÇß´Ù¸é false°¡ ¹ÝȯµÈ´Ù. true¸¦ ¹ÝȯÇß´Ù¸é ¶ôÀ» ¾òÀº °æ¿ìÀÌ´Ù.
Throws:
java.lang.InterruptedException - ŸÀӾƿôÀÌ ´Ù Áö³ª±â Àü¿¡ ÀÎÅÍ·´Æ®°¡ °É¸° °æ¿ì ¹ß»ýÇÑ´Ù.
TimeoutException - ¾ò°íÀÚ ÇÏ´Â ¹ÂÅØ½º¸¦ ŸÀӾƿô ³»¿¡ ¾òÀ» ¼ö ¾ø¾úÀ» °æ¿ì ¹ß»ýÇÑ´Ù.
java.lang.IllegalArgumentException - timeout°ªÀÌ À½¼öÀÏ °æ¿ì ¹ß»ýÇÑ´Ù.
See Also:
release()

release

public void release()
¹ÂÅØ½º¸¦ ³õ´Â´Ù. ¹ÂÅØ¸¦ ¿©·¯°³ ¾ò¾ú´Ù¸é ¾òÀº ¼ö ¸¸Å­ ³õ¾Æ ÁÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ ¹ÂÅØ½º´Â ÀÚ½ÅÀ» °®Àº ½º·¹µå·ÎºÎÅÍ ³õ¾ÆÁ®¾ß¸¸ ÇÑ´Ù.

Throws:
IllegalOwnershipException - ¸¸¾à ¹ÂÅØ½º¸¦ ¾òÀº ½º·¹µµ°¡ ¾Æ´Ñ ´Ù¸¥ ½º·¹µå¿¡¼­ ¹ÂÅØ½º¸¦ ³õÀ¸·ÁÇϰųª ¾î¶² ½º·¹µåµµ ¾òÁö ¾ÊÀº ¹ÂÅØ½º¸¦ ³õÀ¸·ÁÇÒ ¶§ ¹ß»ýÇÑ´Ù.

acquire

public boolean acquire()
                throws java.lang.InterruptedException,
                       TimeoutException
ÆíÀÇ»ó ¸¸µå·¯³õÀº ¸Þ¼Òµå·Î acquire(long) ¸Þ¼Òµå¿¡ ÀÎÀÚ°ªÀ¸·Î LockConstants.TIMEOUT_FOREVERÀ» ÁØ °æ¿ì¿Í µ¿ÀÏÇÏ´Ù.

Throws:
java.lang.InterruptedException
TimeoutException

getID

public final int getID()
ÇØ´ç ¼¼¸¶Æ÷¾î °´Ã¤ÀÇ °íÀ¯ ID¸¦ ¹Ýȯ

Returns:
°íÀ¯ ID