所以我一直在玩Java的线程,我做了一个测试。我制作了一个大约10^9的乘法程序,然后输出所需的毫秒数。Java多线程性能
程序有2种模式,其中一种不打印任何东西,但只需要几毫秒。然而,其他模式每打印一个数字就会打印出“完成”。
第一种模式的结果是好的1线程我得到了8270毫秒的结果,当我使用8个线程时,我得到了2237毫秒(我正在测试一个8核心计算机)的结果。
在第二种模式下,1线程的结果为94 054毫秒,8线程的结果为96 430毫秒。
我的问题是为什么在第二种模式下,使用8个线程的性能比使用1更好?我猜这是因为你不能在终端同时打印两件东西,所以有一个阙,这就是原因,但这只是一个猜测。
打印/写入'System.out'会被同步并阻塞直到完成。在生产环境中,输出* anything *到'System.out'是不被接受的。 – GiantTree