草庐IT

GC_concurrent

全部标签

c++ - std::thread::hardware_concurrency 和静态初始化

这个全局函数是否会遭受静态初始化失败?templatevoidParallelFor(intiIni,intiFin,TFnFn){staticconstunsignedintNThread=std::thread::hardware_concurrency();//...} 最佳答案 Maythisglobalfunctionsufferfromstaticinitializationfiasco?不,不会。你很安全……:-)引用C++标准草案(强调我的)...$6.7:4:Dynamicinitializationofabloc

数据批处理加速(GC收集器->安全点->线程池)

一、引言    有个数据镜像系统每天0点会进行批量处理生成日表,随着数据量不断增大,处理时间从之前的一个小时,目前每天需要接近两小时,一旦继续延迟会影响BI、库存等很多任务。领导让博主进行优化提速。    博主从GC收集器、可数循环的安全点放置、CPU与线程搭配等多个方向进行分析实践。二、提速方向首先看一下代码Listas=mapper.get(queryDTO,i);if(CollectionUtils.isEmpty(as)){break;}/**------------**/CountDownLatchlatch;if(as.size(){Runnablerunnable=()->{tr

java - SWT GC : Color not correctly drawn on Windows

仍在寻找解决方案我有以下问题:我使用SWTGC将GraphNodes中包含的图形绘制到ZestGraph。就Linux和MacOS而言,一切正常。但是当我在Windows上运行我的jar时,节点看起来很奇怪。颜色未正确绘制且没有透明度(通过GC的setAlpha()实现)。这里有两个截图来说明我的问题:Linux:Windows:编辑:我刚刚创建了这个有效的“迷你”示例来进行测试。如果有人知道为什么矩形在Windows上是黑色的,我将不胜感激。这是back.png图片:importorg.eclipse.draw2d.ColorConstants;importorg.eclipse.d

windows - 在 Jenkins : GC Overhead Limit 中对大型 Grails 项目运行编译时出错

我在这方面已经开始无计可施了。我让Jenkins在WindowsServer2008RC2机器上的tomcat容器内运行。我们这里有一个大型Grails项目,其中有一些相关的内部插件(大约10个)。部分流程是运行grailscompile关于项目(在jenkins中使用Grails插件,Grails版本1.3.7)工作开始时很好,但在这一步出现以下错误:[groovyc]Compiling103sourcefilestoD:\jenkins\jobs\my-build-job\workspace\my-application\target\classesCompilationerror

java - 如何在 Windows 下的 Java 服务中添加时间戳 GC 日志文件名?

我有一个在Windows下针对ApacheTomcat运行的Java应用程序。有两种运行此应用程序的方法-作为Windows服务,或从批处理文件手动调用Tomcat。当我通过批处理文件启动应用程序时,我使用以下内容将GC日志添加到JVM参数中:-Xloggc=%~dp0..\logs\gc-%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%.log这会导致GC日志在文件名中输出日期-但当作为服务运行时,DATE和TIME变量无法正确解析。使用Windows服务时,我必须在我的JVM参数中使用哪些变

python - 为什么在使用 concurrent.futures.ProcessPoolExecuter() 进行多处理期间不止一次打印此消息?

“我应该只出现一次”这句话应该只出现一次。我无法理解为什么它又出现了3次...我很清楚我的代码正在执行3个进一步的进程。但是在这3个进程中,只有funktion0()被调用。为什么声明“我应该只出现一次”包含在这额外的3个进程中?有人可以解释一下吗?代码:fromdatetimeimportdatetime#print(datetime.now().time())fromtimeimporttime,sleep#print(time())print("Ishouldappearonlyonce")fromconcurrentimportfuturesdeffunktion0(arg0)

concurrency - 在单个 Redis 连接上交错 Watch Multi/exec。预期或奇怪的行为?

考虑一个前置应用程序,其中每个请求共享相同的Redis连接,我认为这是推荐的方式(?)。在这种情况下,我相信我看到了一些奇怪的watchmulti/exec行为。具体来说,我预计两个交易之一会因为乐观锁定失败而失败(即:watch守卫),但两个交易似乎都没有发脾气,但导致了错误的最终值。为了说明,请参阅以下人为设计的场景。它在Node中,但我相信这是一个普遍的事情。这并行运行2个进程,它们都更新一个计数器。(它基本上实现了在RedisDocs中看到的Watch的规范示例。预期结果是第一个进程导致增量1,而第二个进程更新失败并返回null。相反,结果是两个进程都将计数器更新为1。但是,一

asp.net-mvc - 雷迪斯 : New Keys not persisted in concurrent requests

我们在我们的应用程序中集成了Redis缓存,在正常情况下工作正常。最近,我们在我们的应用程序中发现了一个非常奇怪的问题,即在并发ajax请求的情况下,新添加的键会自动删除,并且修改后的键具有旧值。场景如下:Ajax请求1:-从数据库读取数据,大约需要5-6秒返回-在页面加载时触发(document.ready事件)Ajax请求2:-触发按钮点击-在session中设置值-在Ajax请求1完成之前完成Ajax请求3:-简单地读取session值-找到旧值,应该已经收到Ajax请求2设置的值所以这里的顺序是这样的:1)AjaxReq1触发并开始处理,2)AjaxReq2triggered,

concurrency - 使用redis捕获计数器的峰值

我有一个处理session的分布式系统(session的定义对于这个问题并不重要,除了要注意它是一个持续时间大于一秒的进程,通常要大得多),我想在哪里识别在给定时间段内并发处理的最大session数是多少。基本设置是一个Redis数据库,我在每次session开始时递增一个计数器,并在每次session结束时递减它。因此,计数器值表示任何给定时间点的当前并发数。我的问题是如何生成给定时间片内峰值(最大)并发的准确指标(例如,给定日期的最大并发是多少)。我想听听其他人如何解决这个问题,但我目前的做法是:session开始INCRcounter-name增加计数器的当前值递增命令的结果就是

concurrency - 使用 Celery 同时由两个工作进程运行的独特任务

我正在从事一个项目,该项目的目标是运行一个将任务发送到Celery队列的守护进程,Redis用作代理。每个任务必须一次处理一次(不允许并发)。为了执行此操作,我在我的守护进程中实现了以下代码,它充当Redis的锁:whileTrue:forfooinbar:ifnotself.redis_client.exists(foo.name):# SendthetasktotheCeleryqueuetask=celery_app.send_task('buzz',context={'name':foo.name})redis_client.send(foo.name,task.id)time