我正在寻找算法,以设计在java的多线程应用程序,其中每个线程写入数据到数据库。我想控制每秒写入数据库的记录数。
应用程序获取RPS (每秒记录)参数,并近似生成这些负载。
发布于 2013-02-27 03:31:44
如果您可以使用外部库,则guava有一个RateLimiter类,它可能会执行您所要求的操作:
速率限制器通常用于限制访问某些物理或逻辑资源的速率。这与信号量形成对比,信号量限制并发访问的数量,而不是速率。
发布于 2013-02-27 03:28:21
您可以创建一个permit对象的BlockingQueue,并拥有一个额外的帮助器线程,该线程每秒向队列中添加一次RPS数量的额外许可。写入线程在队列上阻塞,并且直到它们成功地从队列顶部弹出一个许可后才写入。
https://stackoverflow.com/questions/15097494
复制相似问题