JAVA线程池的简单实现

JAVA线程池的简单实现


啊啊啊啊,疯了
之前对于线程池有一定得了解(还不太懂线程池原理的百度吧,很好理解)
所以决定 这次JAVA的多线程项目还是用线程池写

之后为了节约时间,当然是各种搜索教程啊
结果网上一个抄一个,看得我各种崩溃

最后终于测试成功了,其实很简单,需要按照一个套路来写线程池

我想实现的功能是CPU多线程计算最后所有线程的结果写到文件中

因为还不太会用锁,所以就保存到HashMap最后统一输出

废话不多说,开始上干货

/**
*导入需要的模块
*/
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class Thread{

    private int threadNum=8; //最多几个线程运行

    public void test(){
        //建立你的线程池
        ExecutorService threadPool = Executors.newFixedThreadPool(threadNum);
        /**
        *你要执行的过程
        */
        for(int j=1;j<100;j++){
            //如果里面要用到j这个参数,你需要先用final定义一个新的index,
            //我也不知道为什么,如果不定义就报错-_-
            final int index=j;
            threadPool.execute(new Runnable() {
                    @Override
                    public void run() {
                        // TODO 自动生成的方法存根                       
                        try {
                            /**
                            *下面换成你自己要多线程执行的过程
                            *或者你先写好最后让IDE自动生成try
                            */
                            tsimu = norRP(elong.ribosimu());
                        } catch (InterruptedException e) {
                            // TODO 自动生成的 catch 块
                            e.printStackTrace();
                        }
                    }
                });
        }
        //awaitTermination方法判断线程池中的东西是否运行完,这样写就是每隔10秒判断是否结束的意思
        threadPool.awaitTermination(10, TimeUnit.SECONDS);
        //线程运行结束你想执行的代码写下面
        /**
        *.............................
        *.............................
        */
        //最后关闭你的线程池,如果不关闭就算程序运行结束也不会退出
        threadPool.shutdown();

    }
}

本人小白,初学线程池
感觉网上的教程太不友好了

希望上面的这个可以帮到更多的小白

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