多线程那些事儿

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()),

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

时间: 2024-10-13 22:57:20

多线程那些事儿的相关文章

Java并发和多线程那些事儿

我记得我接触电脑的时候是在小学三年级的时候,那是1995年,那年发布了windows95,但是我学习的时候还是只是dos系统,简单对于文件的一些命令操作还有五笔 在过去的那个年代,电脑都是单CPU,也就是单任务处理:多任务处理到后来才慢慢发展起来,多任务代表电脑在同一时刻内可以处理很多并行操作,这样CPU被利用率高了,多个任务都可以共享.多任务处理的出现对于软件开发者来说需要做更多的事,就是资源释放,也就是垃圾回收,在软件不用的时候要释放资源,这样就可以给其他软件腾出资源来使用,就像ios内存机

基于AMF协议的Flex应用程序的性能测试

接触过Flex应用的,基本上对于其表现层的视觉效果都是非常赞赏的,也正是由于其华丽的外表掩盖了其诸多内在的缺陷,比如说响应速度.内存泄漏等等性能问题,对于大部分的Flex开发程序员或者是测试人员都是非常头痛的事情.本人最近就碰到基于Flex应用程序的性能测试,由于它本身的特殊性,通信组建.协议基本上都是Adobe自己开发的,所以基本上通用的测试工具对他支持都是不太理想的.通过一系列的摸索,最终还是得把注意力转移到Flex本身上来,全面去解析AMF协议,其实AMF协议还是走HTTP协议的,但从执行

《Java编程那点事儿》读书笔记(七)——多线程

1.继承Thread类 通过编写新的类继承Thread类可以实现多线程,其中线程的代码必须书写在run方法内部或者在run方法内部进行调用. public class NewThread extends Thread { private int ThreadNum; public NewThread(int ThreadNum){ this.ThreadNum = ThreadNum; } public void run(){ try{ for(int i = 0;i < 10;i ++){ T

多线程的那点事儿(之数据互斥)

在多线程存在的环境中,除了堆栈中的临时数据之外,所有的数据都是共享的.如果我们需要线程之间正确地运行,那么务必需要保证公共数据的执行和计算是正确 的.简单一点说,就是保证数据在执行的时候必须是互斥的.否则,如果两个或者多个线程在同一时刻对数据进行了操作,那么后果是不可想象的. 也许有的朋友会说,不光数据需要保护,代码也需要保护.提出这个观点的朋友只看到了数据访问互斥的表象.在程序的运行空间里面,什么最重要的呢?代码吗?当然不是.代码只是为了数据的访问存在的.数据才是我们一切工作的出发点和落脚点.

浅解多线程(二)之和尚们的那些事儿

浅解多线程(一)之线程入门起步 本文链接 确定多线程的结束时间,thread的IsAlive属性 线程优先级,thread的ThreadPriority属性 线程通信之Monitor类 线程排队之Join 多线程互斥锁Mutex 信号量semaphore 确定多线程的结束时间,thread的IsAlive属性 在多个线程运行的背景下,了解线程什么时候结束,什么时候停止是很有必要的. 案例:老和尚念经计时,2本经书,2个和尚念,一人一本,不能撕破,最短时间念完,问老和尚们念完经书最短需要多长时间.

聊聊多线程哪一些事儿(task)之 二 延续操作

hello,又见面啦,昨天我们简单的介绍了如何去创建和运行一个task.如何实现task的同步执行.如何阻塞等待task集合的执行完毕等待,昨天讲的是task的最基本的知识点,如果你没有看昨天的博客,也不要急,你可以点击下面的地址, 聊聊多线程哪一些事儿(task)之 一),先看看后,在回到这儿来继续交流学习今天的文章,谢谢! 今天主要和大家交流分享的是:task的延续操作.task的异步取消.异步方法等知识点,希望通过本篇文章,能够给你带来一点点帮助我就高兴的不要不要的啦.当然啦,既然是交流,

聊聊多线程那一些事儿 之 四 经典应用(取与舍、动态创建)

hello task,咱们又见面啦!!前面已经通过三篇简单的文章,对多线程的创建.运行.阻塞.等待.取消.延迟操作.异步方法等相关的知识点,通过这一些介绍,现在上手写一个多线程就是分分钟的小事件.如果需要看前三排文章的小伙伴,可以点击下面链接快速阅读谢谢! 说了那么多后,我仔细想了一下,还是要来点实际的项目用例比较实在,那么我现在就讲我平时在项目中用常用的一些业务梳理处理,以供参考,写到不好勿喷,有更好的解决方式,欢迎交流.谢谢! 应用一.多线程的中的取与舍 还是用上几篇文章中的关于酒店客房的数

C++中多线程与Singleton的那些事儿

前言 前段时间在网上看到了一个百度的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton. 看到这个题目后,第一个想法就是用Scott Meyer在<Effective C++>中提到的,把non-local static变量放到static成员函数中来实现,但是经过一番查找轮子,这种实现在某些情况下是有问题的.本文主要将从最基本的单线程中的Singleton开始,慢慢讲述多线程与Singleton的那些事. 单线程 在多线程下,下面这个是常见的写法:

【设计模式】C++中多线程与Singleton的那些事儿

本文转自:http://liyuanlife.com/blog/2015/01/31/thread-safe-singleton-in-cxx/ 1. 前言 前段时间在网上看到了个的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton. 看到这个题目后,第一个想法就是用Scott Meyer在<Effective C++>中提到的,在static成员函数中构造local static变量的方法来实现,但是经过一番查找.思考,才明白这种实现在某些情况下是