Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: display string "Lea 2000" and "Goetz 2006" fixed as "Lea 2000a" and "Goetz 2006a".

Wiki Markup
Many programs must address the problem of handling a series of incoming requests. One simple concurrency strategy is the thread-per-message design pattern, which uses a new thread for each request \[[Lea 20002000a|AA. References#Lea 00]\]. This pattern is generally preferred over sequential executions of time-consuming, I/O-bound, session-based, or isolated tasks.

Wiki Markup
However, the pattern also introduces overheads not seen in sequential execution, including the time and resources required for thread creation and scheduling, for task processing, for resource allocation and deallocation, and for frequent context switching \[[Lea 20002000a|AA. References#Lea 00]\]. Furthermore, an attacker can cause a denial of service (DoS) by overwhelming the system with too many requests all at once, causing the system to become unresponsive rather than degrading gracefully. From a safety perspective, one component can exhaust all resources because of an intermittent error, consequently starving all other components.

...

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="4f866f61fe5f8ff1-bdacc3f4-4f134a79-b5d6a2bf-326f043070ff9cfe9e6025fd"><ac:plain-text-body><![CDATA[

[[API 2006

AA. References#API 06]]

[Interface Executor

http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Executor.html]

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="1cb2829295cf1bc6-34e6998b-42c44693-9ede9684-5e0ad15a8f3e6bc45614ce2a"><ac:plain-text-body><![CDATA[

[[Lea 20002000a

AA. References#Lea 00]]

4.1.3, Thread-Per-Message; 4.1.4, Worker Threads

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="579230d5eaefbfa3-41080467-4a034254-94e5afe5-588b59ffaa15fef06d01275e"><ac:plain-text-body><![CDATA[

[[Tutorials 2008

AA. References#Tutorials 08]]

[Thread Pools

http://java.sun.com/docs/books/tutorial/essential/concurrency/pools.html]

]]></ac:plain-text-body></ac:structured-macro>

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="06eb1a4825afe69c-396bd8ca-478b48a1-9e9b9908-0536a7da707584b1a8015cd0"><ac:plain-text-body><![CDATA[

[[Goetz 20062006a

AA. References#Goetz 06]]

Chapter 8, Applying Thread Pools

]]></ac:plain-text-body></ac:structured-macro>

...