Java Programming in a Multicore WorldUsers expect that an application's performance should increase perceibably when switching form a single to a multi-cpu architecture. This does not occur automatically, but has to be built into the application. Similarly, users expect that an application that work nicely on a single-core processor should run equally reliably on a multicore platform. Again, this does not occur automatically, but requires careful considerations on the part of the developer. The session high-lights some of the aspects of Java that are indispensible for a developer who wants to build reliable and scalable applications designed for execution on a multi-cpu platform.
With the increasing availability and use of multicore processors Java developers need to have a proper understanding of the Java memory model. Multithread applications that work nicely on a single-core processor might exhibit "inexplicable" deficiencies when running on a multicore processor platform. Often this is due to the substantially more aggressive caching techniques used on the processor level in combination with misconceptions regarding the Java Memory Model on the programmer's side. At the same time the expectations regarding scalability are growing. On a multi-cpu platform users expect that an application should scale, that is, its performance should increase with the number of available cpus. This does not occur automatically, but has to be built into the application.
In order to put things into perspective and to illustrate the ever increasing demands imposed on Java developers the tutorial discusses the use of concurrency in Java - its techniques and its tools - in past, present, and future. We observe a trend towards an increasing amount of asynchronous processing and substantial efforts for elimination of lock-based synchronisation. Which role does the memory model play in this context? How do we achieve the required scalability? What is locked-free programming? What are future trends?
Audience: Java developers who develop Java applications with parallel or concurrent processing using multiple threads and developers who are generally interested in Java multithread programming.
Level: intermediate
Prerequisite: Basic knowledge of Java and concurrent programming
Track: Core Java
Language: 

|
Angelika Langer AngelikaLanger.com Angelika Langer works as an independent trainer with a course curriculum
of challenging Java and C++ workshops. She writes the "Effective Java"
column for the German JavaMagazin and is author of the Java Generics
FAQ, which is the most comprehensive resource on Java generics. She is
co-author of the authoritative book on "C++ Standard IOStreams and
Locales" published at Addison Wesley. She enjoys speaking at conferences
all over the world, including JavaOne, OOPLSA, JAX to name a few. Her
teaching focuses on advanced C++ and Java programming and concurrent
programming. Further information can be found at www.AngelikaLanger.com.
|

JAVATM
CHAMPIONS
|
Matt Thompson, director of Sun Developer Network, says in a article on Java Developer's Journal, the idea is to build "a community of Java Champions that reflects the top echelon of contributors to the Java Community." And he goes further: "I look at these folks as the heroes of the Java platform ... These folks are truly both a wealth of knowledge for us to tap into, as well as a great resource to work with in making the Java platform easier to adopt worldwide."
|
|
| |