我试图弄清楚下面的代码是否存在任何潜在的并发问题.具体而言,可见性问题与volatile变量有关.易失性定义为:此变量的值永远不会被线程本地缓存:所有读取和写入将直接进入"主存储器"
public static void main(String [] args)
{
Test test = new Test();
// This will always single threaded
ExecutorService ex = Executors.newSingleThreadExecutor();
for (int i=0; i<10; ++i)
ex.execute(test);
}
private static class Test implements Runnable {
// non volatile variable in question
private int state = 0;
@Override
public void run() {
// will we always see updated state value? Will updating state value
// guarantee future run's see the value?
if (this.state != -1)
this.state++; …Run Code Online (Sandbox Code Playgroud) 如何在10秒后用PHP重定向...
我已经阅读了很多关于它,似乎用javascript会更好.但PHP会省去很多编码.
那么如何在PHP中使用计时器进行重定向?
谢谢
我打算在我的.NET 3.5 Windows应用程序的bin文件夹以外的文件夹中保留几个dll.我不确定如何使用codebase元素或探测元素来指定正确的路径.这就是我现在在app.config文件中所拥有的,
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="CommonLib" publicKeyToken="f0b5026b59d5645e"
culture="neutral" />
<codeBase version="1.0.0.0" href="SharedFolder\CommonLib.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
我明白了,无法在运行时加载程序集错误.看来我在配置文件中做错了.SharedFolder是添加到项目的文件夹.
您对Python Jabber/XMPP客户端库有什么经验?您有什么推荐的吗?
如何使用try和catch语句而不是方法头中的throws子句重写以下方法:
public String getInput(String filename) throws Exception
{
BufferedReader infile = new BufferedReader (new FileReader(filename));
String response = infile.readLine();
infile.close();
return response:
}
Run Code Online (Sandbox Code Playgroud) 我想在Linux(Ubuntu Linux 9.10)上编写一个程序(在python中),它将跟踪我每秒/分钟的按键次数.这包括普通字母键和控制/移位/空格/等.
有没有办法挂钩到X,以便我可以说"当按下一个键时调用这个函数?".因为我希望在我正常工作的同时在后台运行,所以这个函数调用必须能够知道所有程序的所有按键操作.我想它有点像键盘记录器.
这只是个人的事情,所以我不关心它是否可以在Windows/OSX上运行,我不关心人们什么时候有花哨的远程X会话等.
function redir(){
setTimeout(window.location = '/SV/main/main.html', 10);
}
Run Code Online (Sandbox Code Playgroud)
我不知道延迟是在几毫秒还是几秒钟,但我已经尝试了.(通过添加三个零).
问题是,重定向是立即完成的,没有任何延迟......为什么?
谢谢
顺便说一句,这样叫: <body onload="redir();">
如何查看ruby中对象的所有可用方法.当我输入File时,我正在使用aptana IDE.没有显示任何方法.我来自eclipse/java背景.
谢谢
我做了一些Ruby类动态加载/卸载/更新实验,实现了插件基础设施.我发现了几点:
我的问题是,是否有一种简单的方法可以将旧版本"switch"创建的现有对象创建到新版本(但不是旧版本和新版本的合并版本)?在我看来,可能的方法是在卸载/加载后重新创建对象,这不适合插件(不希望它被销毁).
更新:我的意图是使用新版本更新现有对象,而不会将旧版本与新版本合并(例如更改参数数量或删除方法).卸载然后重新加载似乎是最干净的方法,尽管你必须跟踪所有这些对象并在需要时重新创建它们.此外,昂贵的物体可能不适合重新创建.这给我留下了第二个选项,禁止意外合并发生.只要没有删除方法,没有方法签名改变,合并应该可以正常工作.
以下是我的测试程序:
$ cat test.rb
load 'v1.rb'
puts "=> 'v1.rb' loaded"
a1 = A.new
puts "=> object a1(#{a1}) created"
a1.common
a1.method_v1
load 'v2.rb'
puts '',"=> class A updated by 'v2.rb'"
a1.common
a1.method_v1
a1.method_v2
a2 = A.new
puts '',"=> object a2(#{a2}) created"
a2.common
a2.method_v1
a2.method_v2
Object.send(:remove_const, 'A')
puts '',"=> class A unloaded"
A.new rescue puts $!
puts '',"=> class A does not exist now"
a1.common
a1.method_v1
a1.method_v2 rescue puts $!
a2.common
a2.method_v1
a2.method_v2
load 'v3.rb' …Run Code Online (Sandbox Code Playgroud) 我有一些JMX Beans在我的应用程序中公开性能信息.我想有一些工具可以在图形中绘制MBean的属性以进行监控(Windows Perf Mon).我喜欢JConsole和VisualVM附带的东西,但我找不到一个好的插件,它可以让我在MBean上选择一个属性并对其进行监控.有人有主意吗?