|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.ThreadGroup
org.wegra.thread.ThreadPool
½º·¹µå Ç®¿¡ ´ëÇÑ ¹ü¿ëÀûÀÎ ±¸Çö. ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
ThrreadPool pool = new ThreadPool(); pool.execute( new Runnable() { public void run() { // ÀÌ ºÎºÐÀº Ç® ¾ÈÀÇ ½º·¹µå¿¡ ÀÇÇØ¼ »øÇàµÈ´Ù. } }½º·¹µå Ç®ÀÇ Å©±â´Â ¿äû¿¡ µû¶ó¼ ÀÚµ¿ÀûÀ¸·Î Áõ°¡ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ½º·¹µå Ç® ³»ÀÇ ½º·¹µå °³¼ö°¡ ÃæºÐÇÒ °æ¿ì¶ó¸é ³²´Â ½º·¹µå¸¦ »ç¿ëÇØ ¿äûÀ» ¼öÇàÇÏÁö¸¸, ±×·¸Áö ¾ÊÀº °æ¿ì¶ó¸é »õ·Ó°Ô ½º·¹µå¸¦ ¸¸µé¾î ¿äûÀ» ¼öÇàÇÑ´Ù. ÇÏÁö¸¸ Ç®ÀÌ ÃÖ´ë·Î Ä¿Áú ¼ö ÀÖ´Â Å©±â´Â ÁöÁ¤ÇØÁÙ ¼ö ÀÖ´Ù. °¢°¢ÀÇ ½º·¹µå Ç®Àº ½º·¹µå ±×·ìÀ» ÀÌ·é´Ù. ½Ç¿ëÀûÀÎ °üÁ¡¿¡¼ º¼ ¶§ °¢°¢ÀÇ ½º·¹µå Ç®ÀÌ ½º·¹µå ±¸·ìÀ̶ó´Â »ç½ÇÀº º¸¾È ¸Å´ÏÀú¿¡¼ ´Ù¸¥ ±×·ìÀÇ ½º·¹µå¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´ÂÁö¸¦ °üÀåÇÑ´Ù´Â °ÍÀ» ÀǹÌÇϸç, Ç® ³»ÀÇ ¸ðµç ½º·¹µåµéÀº ½±°Ô µ¥¸óÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ThreadGroup°ú´Â ´Ù¸£°Ô ½º·¹µå Ç®¿¡´Â join() ¸Þ¼Òµå°¡ ÀÖÀ¸¸ç ¿©±â¼´Â wait() ¸¦ »ç¿ëÇØ¼ ½º·¹µå Ç®ÀÇ Á¾·á¸¦ ±â´Ù¸± ¼ö ÀÖ°Ô ÇØÁØ´Ù.
ThreadPool pool = new ThreadPool(); //... try { synchronized(pool) { pool.wait(); } } catch( InterruptedException ie) { // ¿¡·¯ ¹ß»ý }À§ÀÇ Äڵ尡 ÆíÀÇ»ó join()À¸·Î½á ±¸ÇöµÈ °ÍÀÌ´Ù. ½º·¹µå¸¦ ÀÎÅÍ·´Æ® ÇÏ¸é ½º·¹µå°¡ Ç®¿¡¼ ºüÁ®³ª¿À°Ô µÈ´Ù. ÀÌ·¸°Ô ÇÏ´Â °¡Àå ½¬¿î ¹æ¹ýÀº ´ÙÀ½°ú °¡ÀÌ ½ÇÇàµÉ ÀÛ¾÷ ÀÚü¿¡¼ ÀÎÅÍ·´Æ®¸¦ °É¾î¹ö¸®´Â ¹æ¹ýÀÌ´Ù.
pool.execute( new Runnable() { public void run() { interrupte(); // ½º·¹µå¸¦ Ç®·ÎºÎÅÍ Á¦°ÅÇÑ´Ù. } } );ÇÏÁö¸¸ deflate(boolean) ¸Þ¼Òµå¸¦ »ç¿ëÇϸé Ç®ÀÇ Ãʱâ Å©±â¸¦ ÃʰúÇÏ´Â ¼öÀÇ ½º·¹µå¸¦ Ç®·ÎºÎÅÍ Á¦°ÅÇØÁÙ ¼ö ÀÖ´Ù. µû¶ó¼, À§¿Í °°ÀÌ ÀÎÅÍ·´Æ®¸¦ °Å´Â ¹æ½Äº¸´Ù ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ ¹Ù¶÷Á÷ÇÏ´Ù.
Nested Class Summary | |
static class |
ThreadPool.Test
Å×½ºÆ® Ŭ·¡½º |
Field Summary | |
static int |
MAX_CAPACITY
ThreadPool ¿¡ ÀúÀåµÉ ¼ö ÀÖ´Â ÃÖ´ë Thread ¼ö |
Constructor Summary | |
ThreadPool()
±âº»ÀûÀÎ ½º·¹µå Ç®À» »ý¼ºÇÑ´Ù. |
|
ThreadPool(int initSize,
int maxSize)
initSize ¸¸ÅÀÇ Ãʱ⠽º·¹µå¸¦ °¡Áö´Â ½º·¹µå Ç®À» »ý¼ºÇÑ´Ù. |
Method Summary | |
void |
close()
Ç®¿¡¼ ´ë±âÇϰí ÀÖ´Â ¸ðµç ½º·¹µå¸¦ Á¾·áÇÑ´Ù. |
void |
deflate(boolean doDeflate)
¸¸¾à ÀÎÀÚ°¡ true·Î ÁöÁ¤µÇ¸é ÃÖÃÊ·Î ÁÖ¾îÁø Ç®ÀÇ Å©±â±îÁö ¾ÐÃàµÈ´Ù. |
void |
execute(java.lang.Runnable action)
ÇöÀç Ç®¿¡ ÀÖ´Â ½º·¹µå¸¦ »ç¿ëÇØ¼ Runnable °´Ã¼ÀÇ run() ¸Þ¼Òµå¸¦ ½ÇÇàÇÑ´Ù. |
void |
execute(Subscriber action,
java.lang.Object argument)
ÇöÀç Ç®¿¡ ÀÖ´Â ½º·¹µå¸¦ »ç¿ëÇØ¼ Command °´Ã¼ÀÇ execute() ¸Þ¼Òµå¸¦ ½ÇÇàÇÑ´Ù. |
void |
join()
Ç®¿¡¼ ´õ ÀÌ»ó ½ÇÇàµÇ´Â ½º·¹µå°¡ ¾øÀ» ¶§±îÁö ±â´Ù¸°´Ù. |
Methods inherited from class java.lang.ThreadGroup |
activeCount, activeGroupCount, allowThreadSuspension, checkAccess, destroy, enumerate, enumerate, enumerate, enumerate, getMaxPriority, getName, getParent, interrupt, isDaemon, isDestroyed, list, parentOf, resume, setDaemon, setMaxPriority, stop, suspend, toString, uncaughtException |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final int MAX_CAPACITY
Constructor Detail |
public ThreadPool()
public ThreadPool(int initSize, int maxSize)
initSize
- Ãʱ⠽º·¹µå °³¼ö.
¸¸¾à ÃʱâÄ¡°¡ ȸ´ëÄ¡º¸´Ù Å©°Ô ÁÖ¾îÁ³À» °æ¿ì
ÃÖ´ëÄ¡¿¡ ¸Â°Ô ÁÙ¾îµç´Ù.maxSize
- Ç®ÀÇ ÃÖ´ë Å©±â.Method Detail |
public void close()
public void deflate(boolean doDeflate)
public void execute(java.lang.Runnable action) throws ClosedQueueException
ClosedQueueException
- close() ¿äûÀ» º¸³½ ÈÄ¿¡ Ç®¿¡ ¹º°¡ ÀÛ¾÷À»
¿äûÇßÀ» ¶§ ¹ß»ýÇÑ´Ù.public final void execute(Subscriber action, java.lang.Object argument) throws ClosedQueueException
ClosedQueueException
- ÀÌ¹Ì Á¾·áµÈ Ç®¿¡ ´ëÇØ ÀÛ¾÷À» ¿äûÇßÀ» °æ¿ì.public void join()
ThreadPool pool = new ThreadPool(); //.. try { synchronized( pool ) { pool.wait(); } } catch ( InterruptedException ie) { // ¹«½Ã }
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |