问题列表 - 第17896页

并发,对象可见性

我试图弄清楚下面的代码是否存在任何潜在的并发问题.具体而言,可见性问题与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)

java concurrency multithreading volatile

7
推荐指数
1
解决办法
938
查看次数

用PHP重定向计时器?

如何在10秒后用PHP重定向...

我已经阅读了很多关于它,似乎用javascript会更好.但PHP会省去很多编码.

那么如何在PHP中使用计时器进行重定向?

谢谢

php

7
推荐指数
2
解决办法
7万
查看次数

在app.config中使用<codebase>元素

我打算在我的.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是添加到项目的文件夹.

.net codebase probing

5
推荐指数
1
解决办法
4962
查看次数

最好的python XMPP/Jabber客户端库?

您对Python Jabber/XMPP客户端库有什么经验?您有什么推荐的吗?

python chat xmpp google-talk

49
推荐指数
2
解决办法
4万
查看次数

尝试并在java中捕获语句?

如何使用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)

java exception-handling

0
推荐指数
1
解决办法
810
查看次数

每按一次键一次函数回调(无论哪个窗口有焦点)?

我想在Linux(Ubuntu Linux 9.10)上编写一个程序(在python中),它将跟踪我每秒/分钟的按键次数.这包括普通字母键和控制/移位/空格/等.

有没有办法挂钩到X,以便我可以说"当按下一个键时调用这个函数?".因为我希望在我正常工作的同时在后台运行,所以这个函数调用必须能够知道所有程序的所有按键操作.我想它有点像键盘记录器.

这只是个人的事情,所以我不关心它是否可以在Windows/OSX上运行,我不关心人们什么时候有花哨的远程X会话等.

python linux keypress xorg keylogger

5
推荐指数
2
解决办法
4953
查看次数

为什么这个小重定向不起作用(javascript)?

function redir(){
setTimeout(window.location = '/SV/main/main.html', 10);
}
Run Code Online (Sandbox Code Playgroud)

我不知道延迟是在几毫秒还是几秒钟,但我已经尝试了.(通过添加三个零).

问题是,重定向是立即完成的,没有任何延迟......为什么?

谢谢

顺便说一句,这样叫: <body onload="redir();">

javascript

2
推荐指数
1
解决办法
241
查看次数

查看可用方法ruby

如何查看ruby中对象的所有可用方法.当我输入File时,我正在使用aptana IDE.没有显示任何方法.我来自eclipse/java背景.

谢谢

ruby aptana eclipse

11
推荐指数
2
解决办法
5973
查看次数

在ruby中加载/卸载/更新类

我做了一些Ruby类动态加载/卸载/更新实验,实现了插件基础设施.我发现了几点:

  1. 如果在没有首先卸载它的情况下加载同一类的新版本,则新版本基本上与先前版本"顶部"或"合并".使用先前版本创建的所有现有对象都将使其类定义"更新".
  2. 卸载类不会影响使用此类创建的现有对象.现有的对象可以保留任何卸载的版本.(类不能再使用,但不能使用已创建的对象)
  3. 如果在卸载先前版本后加载新版本,则创建的新对象将是新版本.但是,在加载新版本之前创建的旧对象不会受到影响,并且仍然是旧版本.

我的问题是,是否有一种简单的方法可以将旧版本"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)

ruby metaprogramming

5
推荐指数
1
解决办法
1719
查看次数

MBean简单图形监视器

我有一些JMX Beans在我的应用程序中公开性能信息.我想有一些工具可以在图形中绘制MBean的属性以进行监控(Windows Perf Mon).我喜欢JConsole和VisualVM附带的东西,但我找不到一个好的插件,它可以让我在MBean上选择一个属性并对其进行监控.有人有主意吗?

jmx visualvm jconsole

10
推荐指数
2
解决办法
1万
查看次数