创建指定大小,当空闲超时还会自动销毁线程的线程池

WO想要Executor线程池,WO还想要限制线程池大小,WO还想要线程闲置超时能自动销毁。

好的~

ThreadPoolExecutor mThreadPool = new ThreadPoolExecutor(poolSize, 0, maxIdleTime, TimeUnit.SECONDS, LinkedBlockingQueue<Runnable>()); // poolSize为线程池大小;maxIdleTime为允许的闲置时间,超时即毁
mThreadPool.allowCoreThreadTimeOut(true); //允许超时后销毁线程
mThreadPool.execute(Runnable() {
    run() {
        // OOXXOO
    }
}

===========================================================

详细的代码功能,参见 :

1, Executors.new*ThreadPool()代码;

2, oracle java 文档 节选:

  • 排队:
    1. 直接提交。 SynchronousQueue,它将任务直接提交给线程而不保持它们。在此,?如果不存在可用于立即运行任务的线程,则试图把任务加入队列将失败,因此会构造一个新的线程。?
    2. 无界队列。使用无界队列(例如,不具有预定义容量的 LinkedBlockingQueue)将导致在所有 corePoolSize 线程都忙时新任务在队列中等待。这样,创建的线程就不会超过 corePoolSize。(因此,maximumPoolSize 的值也就无效了。)
  • 如果希望确保回收取消引用的池:设置适当保持活动时间,使用 0 核心线程的下边界和/或设置 allowCoreThreadTimeOut(boolean)
时间: 2024-10-24 23:51:48

创建指定大小,当空闲超时还会自动销毁线程的线程池的相关文章

创建指定大小的空文件

1 BOOL CreateFileDemo(TCHAR* pFileName, DWORD dwSize) 2 { 3 HANDLE hFile; 4 HANDLE hMapFile; 5 6 hFile = CreateFile( 7 pFileName, 8 GENERIC_WRITE | GENERIC_READ, 9 FILE_SHARE_READ, 10 NULL, 11 CREATE_ALWAYS, 12 FILE_ATTRIBUTE_NORMAL, 13 NULL 14 ); 15

php实现定时创建指定大小文件脚本

公司业务主要做数据备份(支持文件增量备份),因此在测试时,需要定时生成新文件,测试业务运作是否正常. 将以下脚本文件加入crontab,即可实现定时生成新文件.脚本的原理主要是使用dd指令创建指定大小的文件. <?php $timestamp = time(); $id = uniqid(); $filename = "/tmp/{$timestamp}.img"; $cmd = "dd if=/dev/zero of=$filename bs=4m count=5;

使用windows的fsutil命令创建指定大小及类型的测试文件

在软件测试中,对于上传.下载一类功能常常需要用不同大小的文件进行测试. 使用Windows命令fsutil可以生成任意大小.任意类型文件. C:\Users\axia\fsutil file createnew 1G.txt 1000000000

使用CMD 命令创建指定大小的文件

在做资源更新的时候要做 磁盘空间不足的测试,于是想创建一个文件塞满硬盘,搜索到可以用命令来创建. fsutil file createnew null.zip 5278350000 原文地址:https://www.cnblogs.com/amiezhang/p/10097102.html

创建指定大小的文件

实现类似Linux下的dd命令: $tempFile="C:\test1" $fs=New-Object System.IO.FileStream($tempFile,[System.IO.FileMode]::OpenOrCreate) $fs.Seek(2GB,[System.IO.SeekOrigin]::Begin) $fs.WriteByte(0) $fs.Close()

Linux技巧——用dd生成指定大小的文件

我们在测试或调试的时候,有时候会需要生成某个size的文件,比如在测试存储系统时,需要将磁盘剩余空间减少5G,最简单的办法就是拷贝一个5G的文件过来,但是从哪儿去弄这样大小的文件呢,或许你想到随便找一个文件,不停的拷贝,最后合并,这也不失为一种办法,但是有了dd,你会更容易且更灵活的实现 我们来case by case的介绍dd的用法.先看第一个 生成一个大小为5G的文件,内容不做要求 命令如下 $ dd if=/dev/zero of=tmp.5G bs=1G count=5 解释一下这里用到

Windows平台快速的创建一个指定大小的文件

有时,我们需要快速创建一个指定大小的文件,做系统测试使用,我们指定在Linux平台中可以使用如下命令: 创建一个100M的空文件 dd if=/dev/zero of=hello.txt bs=100M count=1 在windows平台同样可以使用下列命令快速创建一个指定大小的文件: fsutil file createnew <filename> <length> C:\>fsutil file createnew用法 : fsutil file createnew &

超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

我在玩webservice中遇到这个问题,情况是:(.net4.0)之前用的是好的,更新系统后出错.vs运行是好的,IIS运行出错..net底层抛错.换成.net2.0后完美运行.所以.net4.0出问题. ========================================================================================================= (转) 问题解决方法: 解决办法 1.在代码里面,把未关闭的连接关闭 2.扩大共

连接字符串中Min Pool Size的理解是错误,超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

Min Pool Size的理解是错误的 假设我们在一个ASP.NET应用程序的连接字符串中将Min Pool Size设置为30: <add name="cnblogs" connectionString="Data Source=.;Initial Catalog=cnblogs;Min Pool Size=30" providerName="System.Data.SqlClient"/> 访问一下应用程序,然后用Windows