0 0

关于池的概念5

现在有个任务,写一个号码池,主要功能就是池里面有很多电话号码,请求来了之后根据一定的规则选择一个号码发送短信。目的是防止运营商对一个发送大量信息的号码封号。用java语言实现,有没有高手给讲讲 这个号码池改怎么实现呢? 谢谢
2012年8月17日 12:03

3个答案 按时间排序 按投票排序

0 0

采纳的答案

需求很简单,是你想复杂了,还是我没理解清楚。
目的是防止号码被封,所以希望发送短信的号码能够均衡。
把这些号码统一放到list中,然后产生0-list.size()-1之间的随机数,选择该随机数对应的号码发送短信就行了吧。
如果对均衡性有要求,可以对每次发送的号码记录发送次数,然后再处理。

2012年8月17日 12:59
0 0

上一个简单的demo:

package com.learnworld.random;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class NumberTest {
	private static Integer[] numberArray;
	private static Random rand = new Random(System.currentTimeMillis());
	
	static {
		Set<Integer> numberSet = new HashSet<Integer>();
		for (int i = 0; i < 100; i++){
			numberSet.add(i);
		}
		numberArray = numberSet.toArray(new Integer[0]);
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		for (int j = 0; j < 10; j++){
			System.out.println("number: " + getNumber());
		}
	}
	
	/**
	 * get number
	 * @return number
	 */
	public static int getNumber(){
		return numberArray[rand.nextInt(numberArray.length)];
	}

}

2012年8月17日 14:53
0 0

1、队列 不是更简单吗?

2、堆,根据规则计算 权重。

2012年8月17日 12:52

相关推荐

    数据库的连接池原理,基本概念及原理,服务器自带的连接池

    1. 连接池的基本概念及原理:数据库连接池的基本思想是为数据库连接建立一个“缓冲池”,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。...

    连接池案例 连接池案例

    本篇文章将深入探讨连接池的概念、工作原理以及如何在实际项目中应用连接池。 连接池的核心概念: 1. 数据库连接:应用程序与数据库进行交互时需要建立的通信通道,创建和关闭连接会消耗时间和系统资源。 2. 连接池...

    简单的delphi内存池

    HeapTest这个文件可能是实现上述概念的一个示例代码或测试用例,用于演示如何在Delphi中创建和使用内存池。分析和理解这个代码可以帮助我们深入理解Delphi内存池的工作原理,并为自己的项目提供灵感和指导。 总的来...

    kafka生产者连接池

    本文将深入探讨"Kafka生产者连接池"的概念、实现原理以及它如何提升系统性能。 Kafka生产者连接池是一种资源复用机制,它允许多个生产者共享一组预先建立好的连接,而不是每次发送消息时都创建新的连接。这种设计...

    Http连接池工具类

    两个主机建立连接的过程是很复杂的一个过程,涉及到多个数据包...一般情况下,普通使用HttpClient已经能满足我们的需求,不过有时候,在我们需要高并发大量的请求网络的时候,还是用“连接池”这样的概念能提升吞吐量。

    java ftp连接池

    FTP连接池的核心概念包括: 1. 连接池管理:连接池维护了一组FTP连接,根据需求分配或回收这些连接。当应用程序需要一个FTP连接时,它可以从池中获取;使用完毕后,连接返回到池中,而不是被关闭。这样可以避免频繁...

    对象池&线程池&数据库连接池

    以下是对这些概念的详细解释: 1. **对象池**: 对象池是一种设计模式,它的核心思想是预先创建一组对象并存储在一个集合中,当需要对象时,从池中获取,而不是每次使用时都创建新的对象。在Java中,`java.util....

    java socket连接池 实现

    这时,连接池的概念就应运而生了。连接池是在应用程序启动时创建一定数量的Socket连接,并将它们保存在一个集合中,当需要建立新的网络连接时,从池中获取一个已经建立好的连接,使用完毕后归还给池,而不是立即关闭...

    关于java对象池的例子代码

    下面我们将深入探讨对象池的概念、工作原理以及如何在实际代码中实现。 一、对象池的概念 对象池是一种池化数据结构,它预先创建了一组对象,并将它们保存在一个集合中。当需要一个新对象时,程序可以从池中获取一...

    Xe2 DataSnap链接池数据集池例子

    总结来说,"Xe2 DataSnap链接池数据集池例子"是一个关于如何在Delphi Xe2的DataSnap框架下利用链接池和数据集池技术来优化数据库操作和提升应用性能的示例。通过这样的设计,开发者可以构建出更高效、响应更快的...

    Mackey_Glass_Reservoir_computing_储备池_储备池神经网络预测混沌信号_储备池预测_reservo

    首先,我们要理解储备池计算的核心概念。储备池计算是一种基于 Echo State Network (ESN) 的递归神经网络模型,它在处理动态系统时具有快速训练和高预测精度的优点。ESN由输入层、储备池(或状态层)和输出层构成。...

    Mongodb连接池for java

    在标签中,“MongoDB”是数据库的名字,“Mongo连接池”指的是针对MongoDB数据库的连接池,“连接池”是数据库连接管理的一个通用概念,适用于各种数据库系统。 在压缩包“mongodb_pool”中,可能包含了以下内容: ...

    socket 客户端连接池实现

    连接池的概念源于数据库连接池,它的核心思想是复用已存在的资源,减少创建和销毁资源带来的开销。在Socket客户端连接池中,当我们需要发送数据时,可以从池中获取一个已建立的连接,使用完毕后归还而不是关闭,这样...

    C# 数据库连接池 C# 数据库连接池

    数据库连接池是数据库管理中的一个重要概念,它在C#编程中扮演着优化数据库操作的关键角色。C#数据库连接池是一种管理数据库连接的技术,通过复用已存在的连接而不是每次请求时都创建新的连接,从而提高数据库操作的...

    delphi实现数据库连接池

    下面我们将详细探讨如何在Delphi中实现数据库连接池,以及其核心概念和优势。 数据库连接池(Database Connection Pool)是预先在内存中创建一定数量的数据库连接,当应用程序需要时,可以从池中获取一个已存在的...

    Apache内存池总结

    Apache内存池,也被称为apr_pool(源于Apache Portable Runtime库),是Apache HTTP服务器项目中的一个核心概念,用于高效地管理内存分配。内存池提供了一种内存分配机制,它允许多个对象共享同一块内存,减少了内存...

    数据库连接池代码实现

    数据库连接池的概念是预先创建并维护一定数量的数据库连接,这些连接可以被多个应用程序线程复用,而不是每次需要时都去创建新的连接。这样不仅能减少数据库连接的创建和销毁开销,还能避免过多的并发连接导致数据库...

    C#高效数据库连接池源码

    数据库连接池是数据库管理中的重要概念,特别是在高并发和大数据量的应用场景下,它能显著提升性能并降低系统资源消耗。在C#编程环境中,我们可以使用自定义的数据库连接池来实现这一功能。本篇文章将深入探讨“C#...

    java socket连接池

    为了解决这个问题,引入了Socket连接池的概念。 连接池的工作机制如下: 1. 初始化:在服务器启动时,预先创建一定数量的Socket连接,放入池中。 2. 借用与归还:当客户端请求到来时,服务器从连接池中取出一个已...

    socket池,socket

    Socket池和Socket连接池是网络编程中的重要概念,主要用于提高应用程序的性能和效率。在处理大量并发网络连接时,传统的单个Socket连接方式可能会导致系统资源的过度消耗,因此引入了Socket池技术。 Socket,全称是...

Global site tag (gtag.js) - Google Analytics