java多线程——比较单线程和多线程的处理时间

分别使用单线程、十个线程和多线程把一个文件夹下的一百张图片复制到另一个文件夹下,比较它们的处理时间
使用单线程:

package lesson19;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

public class MovieStone
{

	public static void main(String[] args)
	{
		long begin=new Date().getTime();
		InputStream in=null;
		OutputStream out=null;
		File dir=new File("D:\\export");
		File[] listFiles = dir.listFiles();
		for(int i=0;i

所用的时间:
java多线程——比较单线程和多线程的处理时间_第1张图片
十个线程:

package lesson20190519;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

public class Move10Thread
{

	public static void main(String[] args)
	{
		long begin=new Date().getTime();
		File dir=new File("D:\\export");
		File[] listFiles = dir.listFiles();
		for(int j=1;j<=10;j++)
		{
			final int s=j;
        new Thread()
        {
			public void run()
			{
				for(int i=(s-1)*10;i

使用时间:
java多线程——比较单线程和多线程的处理时间_第2张图片

一百个线程:

package lesson19;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

public class TheadMoveStone
{
    
	public static void main(String[] args)
	{
		long begin=new Date().getTime();
		File dir=new File("D:\\export");
		File[] listFiles = dir.listFiles();
		for(int i=0;i

多线程用时:
java多线程——比较单线程和多线程的处理时间_第3张图片
可见使用多线程效率要比单线程高出很多,多线程不稳定,处理速度的最终决定因素是CPU、内存等,在单CPU(无论多少核)上,分配CPU资源的单位是“进程”而不是“线程”。

你可能感兴趣的:(java练习)