org.wegra.thread
Class ConditionSet

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

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

¿©·¯ Á¶°Ç º¯¼ö¸¦ ÇϳªÀÇ ´ÜÀ§Ã³·³ Å×½ºÆ®°¡ °¡´ÉÇϵµ·Ï ÇØÁØ´Ù.

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

Nested Class Summary
static class ConditionSet.Mode
          ConditionSet ÀÇ ÀÛµ¿¸ðµå¸¦ ÁöÁ¤Çϱâ À§ÇØ »ç¿ëÇÏ´Â Type Ŭ·¡½º
static class ConditionSet.Test
          Å×½ºÆ®¿ë Ŭ·¡½º.
 
Field Summary
static ConditionSet.Mode MODE_ALL
          ÁÖ¾îÁø Á¶°ÇµéÀÌ ¸ðµÎ ¸¸Á·µÇ¾î¾ß Àüü°¡ ¸¸Á·µÈ´Ù.
static ConditionSet.Mode MODE_ANY
          ÁÖ¾îÁø Á¶°Ç Áß Çϳª ÀÌ»óÀÌ ¸¸Á·µÇ¸é Àüü°¡ ¸¸Á·µÈ´Ù.
 
Constructor Summary
ConditionSet()
           Condition( ConditionSet.ALL ) ¿Í µ¿ÀÏÇÏ´Ù.
ConditionSet(ConditionSet.Mode acquisitionMode)
          acquire(long) ¸Þ¼Òµå¿¡¼­ »ç¿ëÇÒ È¹µæ Á¶°ÇÀ» ÁöÁ¤ÇÏ¿© Á¶°Ç º¯¼öÀÇ ÁýÇÕÀ» »ý¼ºÇÑ´Ù.
 
Method Summary
 boolean acquire(long timeout)
          ¸ðµç Á¶°Ç º¯¼ö ȤÀº ÃÖ¼ÒÇÑ ÇϳªÀÇ Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÈ´Ù.
 boolean acquireAll(long timeout)
           ConditionSet ³»ÀÇ ¸ðµç Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ·µÈ´Ù.
 boolean acquireAny(long timeout)
          Á¶°Ç º¯¼ö ÁýÇÕ Áß Çϳª¶óµµ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÈ´Ù.
 ConditionVariable addCondition(boolean condition)
          Çö ÁýÇÕ¿¡ »õ·Ó°Ô Á¶°Ç º¯¼ö¸¦ Ãß°¡Çϰí ÀÌ º¯¼ö¸¦ ¹ÝȯÇÑ´Ù.
 int getID()
          ÇØ´ç ¼¼¸¶Æ÷¾î °´Ã¤ÀÇ °íÀ¯ ID¸¦ ¹Ýȯ
 void release()
          Á¶°Ç º¯¼ö ÁýÇÕ ³»ÀÇ ¸ðµç Á¶°Ç º¯¼ö¸¦ ³õ´Â´Ù.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MODE_ALL

public static final ConditionSet.Mode MODE_ALL
ÁÖ¾îÁø Á¶°ÇµéÀÌ ¸ðµÎ ¸¸Á·µÇ¾î¾ß Àüü°¡ ¸¸Á·µÈ´Ù.


MODE_ANY

public static final ConditionSet.Mode MODE_ANY
ÁÖ¾îÁø Á¶°Ç Áß Çϳª ÀÌ»óÀÌ ¸¸Á·µÇ¸é Àüü°¡ ¸¸Á·µÈ´Ù.

Constructor Detail

ConditionSet

public ConditionSet()
Condition( ConditionSet.ALL ) ¿Í µ¿ÀÏÇÏ´Ù.


ConditionSet

public ConditionSet(ConditionSet.Mode acquisitionMode)
acquire(long) ¸Þ¼Òµå¿¡¼­ »ç¿ëÇÒ È¹µæ Á¶°ÇÀ» ÁöÁ¤ÇÏ¿© Á¶°Ç º¯¼öÀÇ ÁýÇÕÀ» »ý¼ºÇÑ´Ù.

Parameters:
acquisitionMode - ¸¸¾à ÀÌ °ªÀÌ ConditionSet.ALL À̶ó¸é acquire(long)´Â ÁýÇÕ ³»ÀÇ ¸ðµç Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÈ´Ù. ¹Ý¸é ConditionSet.ANY À̸é acquire(long)´Â ÁýÇÕ ³»ÀÇ Á¶°Ç º¯¼ö°¡ Çϳª¶óµµ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÈ´Ù.
Method Detail

acquire

public boolean acquire(long timeout)
                throws java.lang.InterruptedException,
                       TimeoutException
¸ðµç Á¶°Ç º¯¼ö ȤÀº ÃÖ¼ÒÇÑ ÇϳªÀÇ Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÈ´Ù. ¸ðµç Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÇ´À³Ä ÃÖ¼ÒÇÑ ÇϳªÀÇ Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÇ´À³Ä´Â »ý¼ºÀÚ¿¡ ³Ñ°ÜÁø ÀÎÀÚ°ª¿¡ ÀÇÇØ °áÁ¤µÈ´Ù.

Returns:
¸¸¾à ŸÀӾƿô °ªÀÌ 0ÀÌ°í ¶ôÀ» ¾òÀ» ¼ö ¾ø¾úÀ» °æ¿ì false¸¦ ¹ÝȯÇÏ¸ç ±× ¿ÜÀÇ °æ¿ì true¸¦ ¹ÝȯÇÑ´Ù.
Throws:
TimeoutException - ¼¼¸¶Æ÷¾î°¡ ¾ò¾îÁö±â Àü¿¡ ŸÀӾƿôÀÌ ´Ù Áö³ª°£ °æ¿ì.
java.lang.InterruptedException - ´Ù¸¥ ½º·¹µå¿¡ ÀÇÇØ¼­ ¶ôÀ» ¾ò´Â °ÍÀÌ ÀÎÅÍ·´Æ® µÇ¾úÀ» °æ¿ì.

acquireAll

public boolean acquireAll(long timeout)
                   throws java.lang.InterruptedException,
                          TimeoutException
ConditionSet ³»ÀÇ ¸ðµç Á¶°Ç º¯¼ö°¡ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ·µÈ´Ù. ÀÌ¹Ì ¸ðµç Á¶°Ç º¯¼ö°¡ ÂüÀÎ »óÅ¿¡¼­ ÀÌ ¸Þ¼Òµå°¡ È£ÃâµÇ¸é °ð¹Ù·Î º¹±ÍÇÑ´Ù.

Parameters:
timeout - ÃÖ´ëÇÑ ºí·ÏÅ· µÉ ½Ã°£À» ÁöÁ¤ ¹Ýµå½Ã 0 ÀÌ»óÀ̾î¾ß ÇÑ´Ù.
Throws:
java.lang.InterruptedException - Thread.interrupt() ¸Þ¼¼Áö°¡ ÇöÀç ½º·¹µå¿¡ ÀüÇØÁö¸é ¹ß»ýÇÑ´Ù.
TimeoutException - ¸Þ¼Òµå¿¡ ŸÀÓ ¾Æ¿ôÀÌ °É·ÈÀ» ¶§ ¹ß»ýÇϳ®.
java.lang.IllegalArgumentException - ŸÀÓ ¾Æ¿ô ÀÎÀÚ°¡ 0º¸´Ù ÀÛÀ» °æ¿ì ¹ß»ýÇÑ´Ù.

acquireAny

public boolean acquireAny(long timeout)
                   throws java.lang.InterruptedException,
                          TimeoutException
Á¶°Ç º¯¼ö ÁýÇÕ Áß Çϳª¶óµµ ÂüÀÌ µÉ ¶§±îÁö ºí·ÏÅ· µÈ´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ ÀÌ¹Ì ÇϳªÀÇ Á¶°Ç º¯¼ö¶óµµ ÂüÀÌ µÇ¾î ÀÖ´Â »óÅ¿´´Ù¸é °ð¹Ù·Î º¹±ÍÇÑ´Ù.

Parameters:
timeout - ÃÖ´ëÇÑ ±â´Ù¸± ½Ã°£(ms)
Throws:
java.lang.InterruptedException - ÇöÀç ½º·¹µå¿¡ Thread.interrupt() ¸Þ½ÃÁö°¡ º¸³»Áö¸é ¹ß»ýÇÑ´Ù.
TimeoutException - ŸÀÓ ¾Æ¿ô »óȲ¿¡¼­ ¹ß»ýÇÑ´Ù.
java.lang.IllegalArgumentException - iimeout °ªÀÌ À½¼öÀÌ¸é ¹ß»ýÇÑ´Ù.

addCondition

public ConditionVariable addCondition(boolean condition)
Çö ÁýÇÕ¿¡ »õ·Ó°Ô Á¶°Ç º¯¼ö¸¦ Ãß°¡Çϰí ÀÌ º¯¼ö¸¦ ¹ÝȯÇÑ´Ù. ¿ÜºÎ¿¡¼­ ¸¸µç Á¶°Ç º¯¼ö¸¦ Á÷Á¢ Ãß°¡ÇÒ ¼ö ¾ø°í ¹Ýµå½Ã ÀÌ ¸Þ¼Òµå¸¦ ÅëÇØ¼­ ¸¸µç Á¶°Ç º¯¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

Parameters:
condition - ¸¸¾à ÀÌ °ªÀÌ true ¸é »õ·Ó°Ô »ý¼ºµÇ´Â Á¶°Ç º¯¼öÀÇ °ªÀº ÂüÀÌ´Ù.

release

public void release()
Á¶°Ç º¯¼ö ÁýÇÕ ³»ÀÇ ¸ðµç Á¶°Ç º¯¼ö¸¦ ³õ´Â´Ù. ("°ÅÁþ"À¸·Î ¼³Á¤ÇÑ´Ù).


getID

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

Returns:
°íÀ¯ ID