我有一个场景
多个线程正在推送队列上的数据
只有一个线程使用下面的代码处理数据
代码 -
while ( Continue )
{
while ( queue.Count > 0 )
{
MyObj o = queue.Dequeue();
someProcess(o);
}
myAutoResetEvent.WaitOne();
}
Run Code Online (Sandbox Code Playgroud)
但有时,queue.Dequeue()在上面的场景中返回null什么给出?
摘要几乎说明了一切.以下是相关的代码片段ImmutableList.createFromIterable():
if (element == null) {
throw new NullPointerException("at index " + index);
}
Run Code Online (Sandbox Code Playgroud)
我已经多次遇到这种情况,并且无法理解为什么通用库函数应该强加这个限制.
编辑1:通过"通用",我对95%的案例感到满意.但我认为我还没有写过100个电话ImmutableList.of(),并且不止一次被这个电话咬过.不过,也许我是一个离群值.:)
编辑2:我猜我最大的抱怨是,当与标准java.util集合交互时,这会产生"打嗝" .正如您在演讲中指出的那样,null集合中s的问题可能会显示在远离插入这些空值的位置.但是,如果我有一长串代码在一端将空值放在标准集合中并在另一端正确处理它们,那么我无法在整个过程中的任何时候替换谷歌集合类,因为它会立即抛出一个NullPointerException.
我有一个Web服务,客户通过插入外部JavaScript(托管在我的服务器上)来使用它.最近,由于服务器中断 - 外部JavaScript变得不可用,我的客户的网站开始爬行,因为浏览器没有加载网站的其余部分,直到它加载JS(它进入网站的标题).
我正在尝试制定方法,以便即使我的服务器出现故障,客户的网站也不会减速,为此我想模拟我的服务器没有响应的情况.请注意,如果我指定了错误的URL,浏览器将不会加载JS,但如果URL正确且服务器没有响应,浏览器将停止加载页面的其余部分.我想模拟最后一个案例.任何想法我怎么能去做?
PS:在服务器端,我正在使用LAMP堆栈.
有没有办法配置log4j.xml文件让多个appender共享相同的布局?我已经将layout参数复制到每个appender中,但是如果模式发生变化,那么在多个地方更新它会很麻烦(而且我需要这样做很奇怪).
谢谢,杰夫
我找不到在异常处理期间创建的异常类实例的信息?在哪个内存区域(堆栈,堆,静态存储等)?由于堆栈展开,我认为它不在堆栈中...
我正在使用Visual Studio 2008,我有一个包含多个项目的解决方案.我有一个snk来签署我的程序集,它存在于一个解决方案文件夹中.
我已将snk链接到我的每个项目,但现在当我尝试使用该链接的snk签署我的项目时,我找不到带有文件对话框的snk文件.
我错过了这一步吗?
Solution
> Solution Folder
MyKey.snk
> Project X
> _LinkedFiles
MyKey.snk (physical file doesn't appear here but shows in VS)
> ...
Run Code Online (Sandbox Code Playgroud) 在C/C++语言循环语句中,我们使用exit(0),exit(1)或其他值.该值需要什么,当我们退出循环时该值在循环中的作用是什么,exit()中1和0的含义是什么?
更新(希望)澄清:如果定义一个目标在给定阶段运行,是否可以在不运行所有阶段的情况下运行单个目标.换句话说,是否可以antrun:run在不获取依赖关系,生成资源,编译,测试,打包等的情况下运行目标(下面定义为安装阶段的一部分)?
我正在使用antrun插件在package阶段创建一个zip文件,并在此阶段删除和复制一些文件install.我理解如何运行单个maven插件目标,例如:mvn antrun:run.但是,有没有办法运行特定执行的目标?喜欢的东西mvn antrun:run:execution-id,还是mvn phase:antrun:run?
基本上,如果我能告诉maven除了在部署阶段内运行下面定义的ant任务之外什么都不做,我会很高兴.等待maven通过所有阶段只是为了检查部署阶段的ant任务是否正常工作,这有点乏味.
<executions>
<!-- create zip file -->
<execution>
<id>create-zip</id>
<phase>package</phase>
<configuration>
<tasks>
...create zip...
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- do some other stuff -->
<execution>
<id>copy-files</id>
<phase>install</phase>
<configuration>
<tasks>
...delete some files, copy some files ...
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
Run Code Online (Sandbox Code Playgroud) 这段代码编译,但没有惊喜,它在链接时失败(没有主要发现):
清单1:
void main();
Run Code Online (Sandbox Code Playgroud)
链接错误:\ mingw\lib\libmingw32.a(main.o):main.c :(.text + 0x106)未定义引用_WinMain @ 16'
但是,下面的代码编译并链接正常,并带有警告:
清单2:
void (*main)();
Run Code Online (Sandbox Code Playgroud)
警告:'main'通常是一个函数
问题:
在清单1中,链接器应该抱怨缺少"main".为什么要寻找_WinMain @ 16?
清单2生成的可执行文件只是崩溃了.是什么原因?
谢谢你的时间.
c++ ×3
c ×2
java ×2
.net ×1
ant ×1
apache ×1
c# ×1
collections ×1
exception ×1
guava ×1
javascript ×1
log4j ×1
maven-2 ×1
process-exit ×1
sleep ×1
snk ×1
strongname ×1