Thank you for your material about Java multi-threading programming at http://www.intel.com/cd/ids/developer/asmo-na/eng/229712.htm.
My question is: Do I need to do something with my Java multi-threaded code to coordinate well with Intel Multi-core?
Can the Sun JVMprovidedhelpmy code perform well in multi-core environment? If not, what tips can you offer?
Thank you for any help you can provide.
- Do I need to do something with my Java multi-threaded code to coordinate well with Intel Multi-core?
I don't think one may need to do something special to make multithreaded code run better specifically on the Intel Multi-Core. Java has been designed to keep the applications abstract from the underlying platform, following just the general design principles and practices for writing multithreaded Java applications should be enough.
- Can the Sun JVMprovidedhelpmy code perform well in multi-core environment? If not, what tips can you offer?
Garbage collector (GC) is often believed as one of the most noticeable issues with running multi-threaded Java applications in the multi-core environment. Managing objects in the Java heap imposes a certain synchronization overhead that may substantially degrade the performance of the multi-threaded app. Therefore, it may help if the critical code pieces are designed in such way that they dont put a stress on the GC (e.g. dont allocate new objects wherever possible).
The issues like performance of memory management subsystems are solved and are being solved by JVM providers. according to your java i think one issue can appiar. It happens often, that some threadingerrors (dataraces or dead-locks) already are in the code but can not cause an errors in runtime on single-core, but they will happen on multicore at really parallel execution