多线程那些事儿

Posted 手边星辰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程那些事儿相关的知识,希望对你有一定的参考价值。

public void perform(){
        ScheduledExecutorService schedulePool=Executors.newScheduledThreadPool(1);
        
        long initialDelay=10;
        long period=3;
        schedulePool.scheduleAtFixedRate(new Runnable(){
            @Override
            public void run() {
                HttpClient client = new DefaultHttpClient();
                
                String url="http://localhost:8080/member/....../test.do";
                HttpUriRequest get=new HttpGet(url);
                try {
                    HttpResponse res = client.execute(get);
                    System.out.println(EntityUtils.toString(res.getEntity(),"utf-8"));
                } catch (ClientProtocolException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }finally{
                    if(client!=null){
                        client.getConnectionManager().shutdown();  
                    }
                }
                
            }            
        }, initialDelay, period, TimeUnit.SECONDS);
        
    }

监控资源发现,方法内部的线程池关不关闭都无所谓(ExecutorService.shutdown()),

细细想来,也是这个道理:方法跑完的时候方法内所有内部的变量都会被标记为清楚,所以线程池也被标记为清楚了,所以不会占用资源。

以上是关于多线程那些事儿的主要内容,如果未能解决你的问题,请参考以下文章

多线程那些事儿

Java并发和多线程那些事儿

C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!

Android+Handler+Thread 那些事儿

Spring Controller单例与线程安全那些事儿

JDK源码那些事儿之传说中的AQS-概览