Multicore Desktop Application Experimentation, Part 1: Java Threads