When: September 11th, 2007 11:30-12:40
Where: University of Phoenix (see tadalafil com_google_maps/Itemid,31/" title: ""Meeting location">Meeting location)
Topic: Concurrency
Speaker: Brett Schuchert
Sponsor: Objectmentor
Agenda
11:30 am - Welcome Announcements
11:40 am - Main Presentation
12:40 pm - Wrap Up
When: September 11th, 2007 at 6:00PM
Where: Computer Club of Oklahoma City (see Meeting location)
Topic: Concurrency
Speaker: Brett Schuchert
Sponsor: Objectmentor
Agenda
6:00 pm - Hello Java
6:30 pm - Pizza
7:00 pm - Welcome Announcements
7:15 pm - Main Presentation continued
8:45 pm - Giveaways and Wrap Up
From no-threading to the executor framework built in to Java 5
This is a quick hop through basic threading.
We start with a single-threaded server with a failing test (due to performance).
We fix the performance problem by introducing basic threading (justified by the Single Responsibility Principle)
We then upgrade the server to us the Executor framework instead hand-rolling threads
This is a quick example of creating a fixed-size thread pool
If time permits (it probably won’t), we’ll look at a deadlock problem with the executor framework.
This presentation assumes familiarity with Java, JUnit 4, and basic Threading - the hello Java should suffice
We begin with a simple problem of an unguarded, shared resource
We fix the problem using synchronized (basic)
We fix the problem by NOT guarding (intermediate) using a Java 5 class to do so
We then discuss the background behind how this works
We continue with a real problem, trying to screen scrape some web pages using the HTTP Client. The whole process takes 30 seconds
We evaluate the work to figure out
The CPU bound parts
The I/O bound parts
Estimate how much we can speed things up
We then test our way into a multi-threaded solution
Evaluate the results
Remove contention
Move towards our theoretical maximum speed
Along the way we’ll learn a little more about the executor framework
If we have time (we probably won’t), we’ll have a look at a few more of the Java 5 classes:
Barrier or Latch (haven’t picked which one yet)
ConcurrentHashMap
"
©2024 All Rights Reserved.