问题列表 - 第39931页

C#中的Volatile和Thread.MemoryBarrier

为了实现多线程应用程序的无锁代码,我使用了volatile变量, 理论上:该volatile关键字仅用于确保所有线程都能看到volatile变量的最新值; 因此,如果线程A更新变量值并且线程B在该更新发生之后读取该变量,它将看到最近从线程A写入的最新值.正如我在Nutshell书中的C#4.0中读到的那样,这是不正确的,因为

应用volatile不会阻止写入后读取交换.

可以通过Thread.MemoryBarrier()在每次获取volatile变量之前放置来解决这个问题:

private volatile bool _foo = false;

private void A()
{
    //…
    Thread.MemoryBarrier();
    if (_foo)
    {
        //do somthing
    }
}

private void B()
{
    //…
    _foo = true;
    //…
}
Run Code Online (Sandbox Code Playgroud)

如果这解决了问题; 考虑我们有一个while循环,它依赖于其中一个条件的值; Thread.MemoryBarrier()在while循环之前放置是解决问题的正确方法吗?例:

private void A()
{
    Thread.MemoryBarrier();
    while (_someOtherConditions && _foo)
    {
        // do somthing.
    }
}
Run Code Online (Sandbox Code Playgroud)

为了更准确,我希望_foo变量在任何时候任何线程要求它时给出最新的值; 因此,如果Thread.MemoryBarrier()在调用变量之前插入修复问题,那么我可以使用 …

c# memory-management volatile nonblocking memory-barriers

9
推荐指数
2
解决办法
4056
查看次数

使用Clojure对Java进行单元测试

让组织接受备用JVM语言的方法之一是首先使用它来对Java代码进行单元测试 - "老板,我只是要在XXX中编写一些单元测试.它永远不会投入生产. "

在Clojure中有没有这方面的教程?

我刚开始使用Scala来测试Java REST服务器.在Scala中编写测试允许我嵌入预期的XML输出,使用文字List对象模拟数据库调用等,更不用说特征使得很容易抽象出测试的公共代码.

unit-testing clojure

16
推荐指数
1
解决办法
2200
查看次数

带有逗号和句点的SQL Server 2005货币格式

有没有办法在SQL Server 2005中投放一个money字段来格式化它

例)该字段包含:

99966.00
Run Code Online (Sandbox Code Playgroud)

我们想以这种格式返回它:$ 99,966.00

sql-server sql-server-2005 sql-server-2008

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

会话/身份验证如何与nginx/NHPM/PHP-FPM一起使用?

所以,我正在考虑使用nginx和nginx-http-push-module以及PHP-FPM构建一个应用程序,经过大量有趣的配置,我得到了它应该处理PHP页面的工作.

然而,我没有得到的是会话应该如何工作 - 我见过的nginx + NHPM的所有例子都是通过发布者 - 订阅者系统运行的,但是如果订阅者频道正在进行,它将永远不清楚会发生什么对用户而言,实际上是唯一的.例如,可以考虑为每个用户提供具有公共频道和私人频道的聊天系统.

现在,在传统的PHP设置中,您将把cookie传递给PHP,从那里查找会话,并根据用户是否经过身份验证处理页面的其余部分,但使用PHP-FPM和轮询,它似乎不应该那样工作.

我可以理解,如果请求是非经过身份验证的用户,您只需转发它们并显示错误消息并从客户端终止长轮询,因为它知道它无效,但是如果有效请求,您几乎需要从客户端进行轮询,在PHP中进行身份验证,然后断开连接,但请求保持打开状态 - 我不确定该部分是如何工作的.

任何人都可以解释它应该如何实现,如果可能的话,最好用一个例子吗?请注意,我不是在寻找HTTP基本身份验证,我需要在MongoDB中查看单独的数据存储进行身份验证.

php authentication session nginx

6
推荐指数
1
解决办法
2390
查看次数

在java中获取组件的坐标

我有一个JLayeredPane,而JLayeredPane内部是一个JInternalFrame.我需要的是JInternalFrame中内容窗格的边界(x位置,y位置,宽度,高度).边界需要与JLayeredPane相关.我的问题是边框,标题栏,我不确定JInternalFrame的其他内容是否正在弄乱我的计算.它只有几个像素.

这是我尝试计算它的方式.此代码位于JInternalFrame中:


Rectangle area = new Rectangle(
                getX() + 2,  //The x coordinate of the JInternalFrame + 2 for the border
                getY() + ((javax.swing.plaf.basic.BasicInternalFrameUI) getUI()).getNorthPane().getHeight(), //The Y position of the JinternalFrame + theheight of the title bar of the JInternalFrame
                getContentPane().getWidth() - 2, //The width of the Jinternals content pane - the border of the frame
                getContentPane().getHeight() //the height of the JinternalFrames content pane
                );

我需要获取内部框架的内容窗格的位置. 替代文字

java swing coordinates

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

SELECT sql语句的ExecuteNonQuery不返回任何行

如何检查ExecuteNonQuery for SELECT sql语句后返回没有行返回没有行?

c# sql-server

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

如何在点击右侧标注配件视图时跟踪其位置

如下所示,我有一个带右键的注释视图.当用户点击右键时我会出现一个弹出窗口 - 问题是我不知道用户点击的位置,所以我没有X和Y来显示弹出窗口.

如何找出用户点击的位置,即X和Y?

HotelAnnotationView *customPinView = [[HotelAnnotationView alloc] initWithAnnotation:theHotel reuseIdentifier:hotelPin];

//The right button which allows user to see hotel information
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[rightButton addTarget:self action:@selector(showDetailsForHotel:) forControlEvents:UIControlEventTouchUpInside];

rightButton.tag = theHotel.id;
customPinView.rightCalloutAccessoryView = rightButton;
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

3
推荐指数
1
解决办法
1676
查看次数

Spring ThreadPoolTask​​Executor只运行一个线程

我们在JMS使用者中使用ThreadPoolExecutor并将其注入DefaultMessageListenerContainer.我希望这会为许多消息运行并发线程,但是我们的日志显示线程id不会改变.我们的日志记录显示,对于不同的消息处理,线程ID在24处始终相同.

这是该场景中的弹簧配置:

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"       
         p:connectionFactory-ref="cachedConnectionFactory"
         p:destination-ref="formsCRRDestination"
         p:messageListener-ref="formServicePojo"
         p:concurrentConsumers="5"
         p:idleTaskExecutionLimit="1"
         p:maxConcurrentConsumers="25"
         p:taskExecutor-ref="threadPoolExecutor"         
         destroy-method="doShutdown"     
    >   


 <bean id="threadPoolExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >
        <property name="corePoolSize" value="1"/>
        <property name="maxPoolSize" value="15"/>
        <property name="keepAliveSeconds" value="30"/>
    </bean>
Run Code Online (Sandbox Code Playgroud)

在不将threadPoolExectuor bean注入DefaultMessageListenerContainer之后,消息现在正在不同的线程中执行.

这是最终的配置:

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer"       
             p:connectionFactory-ref="cachedConnectionFactory"
             p:destination-ref="formsCRRDestination"
             p:messageListener-ref="formServicePojo"
             p:concurrentConsumers="5"
             p:idleTaskExecutionLimit="1"
             p:maxConcurrentConsumers="25"       
             destroy-method="doShutdown"     
        >   
Run Code Online (Sandbox Code Playgroud)

我试过阅读文档,但我不明白为什么会这样.任何解释?

java spring

18
推荐指数
3
解决办法
4万
查看次数

单键和keypath之间有什么区别?

如图

[self setValue:[NSNumber numberWithInt:intValue] forKey:@"myObject.value"];
Run Code Online (Sandbox Code Playgroud)

答案是"当然,这是一条关键路径,而不是一把钥匙",这是什么意思?

objective-c

6
推荐指数
1
解决办法
4364
查看次数

是否可以在Scala中将"this"作为隐式参数传递?

假设我想包装可以使用try-catch块抛出异常的代码,该块记录异常并继续.就像是:

loggingExceptions {
  // something dangerous
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想用于记录调用对象上定义的Logger(如果有的话)(如果没有,则会产生编译时错误).我喜欢定义这样的东西:

def loggingExceptions[L <: { def logger: Logger }](work: => Unit)(implicit objectWithLogger: L): Unit = {
  try {
    work
  } catch {
    case t: Exception => objectWithLogger.logger.error(t.getMessage)
  }
}
Run Code Online (Sandbox Code Playgroud)

其中objectWithLogger会以某种方式"神奇地"在客户端代码中扩展为"this".这个(或类似的东西)可能吗?

scala implicit

9
推荐指数
1
解决办法
1825
查看次数