In this paper we propose mechanisms to improve the performance of parallel Java applications executing on multiprogrammed shared-memory multiprocessors. The proposal is based on a dialog between each Java application and the underlying execution environment (mainly the resource manager in the kernel) so that both cooperate on improving the overall performance (individual application speedup and system throughput). This dialog implies modifications at the application (or compiler), the threading library and kernel levels. Performance degradation of parallel applications running on multiprogrammed systems has been analyzed and addressed using some kind of cooperation on other environment. In this paper we intend to detect this problem in the Java context, determine if cooperation is also a good mechanism to improve performance, and in this case, which modifications are required to the Java execution environment to allow this cooperation. The paper includes experimental results based on ...