问题列表 - 第15615页

C++中的非阻塞线程安全队列?

C++中是否存在线程安全的非阻塞队列类?

可能是一个基本问题,但我很长一段时间没有做过C++ ......

编辑:删除STL要求.

c++ thread-safety

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

在Scala actor中访问共享资源的正确方法

在Java中,可以同步访问多线程环境中所需的共享资源的方法或块.

我想知道"Scala Actors"这样做的方式是如何工作的.

假设我有一个java.sql.Connection对象的连接池,我希望提供对它的线程安全访问.我将它实现为接收消息并向发送者发回连接的actor.

似乎有三种方法可以做到这一点:

  1. 使用未来
  2. 使用 !?
  3. 有需要的班级Connection也是演员

码:

sealed abstract class ConnectionPoolMessage
case class NewConnection extends ConnectionPoolMessage
case class CloseConnection(c:Connection) extends ConnectionPoolMessage

class ConnectionPool extends Actor {
  def act() {
    while (true) {
      receive() {
        case NewConnection => sender ! getConnectionFromPool
        case CloseConnection(conn) => returnConnection(conn)
      }
    }
  }
}

// Here, my "do stuff" method is all in one place, and I block waiting
// on the Future from the pool; however this could …
Run Code Online (Sandbox Code Playgroud)

concurrency scala actor

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

在.net中自动增加Id

我们需要将xml文件存储在文件系统中.xml文件应该具有uniqueId,范围从(00000001到99999999)是否有办法自动增加生成的任何新xml的id.xml存储在复杂的文件夹结构中.我尝试了xml文件的计数,这似乎是一个缓慢的操作.应用程序是用c#.net开发的.任何人都可以提出任何其他方法来保存数据.数据库似乎是一个操作,但只在一列中存储一个值并不是一个好主意.谁能提出其他方法吗?

.net auto-increment

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

红宝石包括问题

class Foo
  def initialize(a)
    puts "Hello #{a}"
  end
end
module Bar
  def initialize(b)
    puts "#{b} World"
  end
end
class Sample < Foo
  include Bar
  def initialize(c)
    super
  end
end
Sample.new('qux') #=> qux World
Run Code Online (Sandbox Code Playgroud)

为什么输出不是'Hello qux'?代码的功劳

ruby

4
推荐指数
1
解决办法
2382
查看次数

SVN - 如何将trunk中的更改应用于所有分支

我是SVN的初学者.我有这样的SVN目录结构:

|-trunk
  |-file1.php
  |-file2.php
|-branches
  |-branch_1
    |-file1.php
    |-file2.php
  |-branch_2
    |-file1.php
    |-file2.php
Run Code Online (Sandbox Code Playgroud)

在后台我有我的应用程序的主要版本.我有两个分支用于不同的客户端,仅在某些文件中有修改.当我发现一些核心错误时,我将它固定在trunk中.比如我修改了file1.phptrunk目录中.我想对file1.php所有分支中指定的文件应用更改.

我有点困惑.在使用Subversion版本控制中,我找到了以下解释.

Subversion的存储库有一个特殊的设计.复制目录时,您不必担心存储库增长巨大 - Subversion实际上并不复制任何数据.相反,它会创建一个指向现有树的新目录条目.

所以我虽然当我在文件中提交更改时,trunk\file1.php它将自动应用于其他file1.php文件,因为我没有对branches目录中的文件进行任何更改.

如何将trunk目录中的更改应用到所有分支?我试图这样使用svn merge:

svn merge -r 31:32 http://mysvnserver.com/project/branches/branch_1
Run Code Online (Sandbox Code Playgroud)

但我没有做任何更改(svn diff -r 31:32返回我所做的所有更改.)

svn merge

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

如何实例化stdClass

是不是可以在PHP中这样做?

Javascript代码:

var a = {name: "john", age: 13}; //a.name = "john"; a.age = 13
Run Code Online (Sandbox Code Playgroud)

动态实例化stdClass变量?

javascript php stdclass code-snippets

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

spin_lock和spin_unlock是否会损害单CPU机器上SMP内核的性能?

在我的Ubuntu机器上,正在运行的默认内核映像是为smp(CONFIG_SMP=y)构建的.但这台机器只有1个CPU.

在单处理器内核上,与smp内核不同,spin_lock/unlock是空函数.那么这个设置的表现spin_lock()spin_unlock()行为如何呢?

这种特定于smp的代码是否会对性能产生影响?

linux linux-kernel spinlock

8
推荐指数
1
解决办法
913
查看次数

清洁CentOS安装上的Apache Forbidden错误

我有一份干净的CentOS副本.

刚刚安装了Apache,PHP和MySQL.一切都像魅力一样.

除了我创建了一个新用户,我们称之为'demo'.

我在httpd.conf中创建了一个新的虚拟目录,并将其指向'/ home/demo/www'.我在'/ home/demo/www'下创建了一个空的index.html.

Apache在用户'apache'和'apache'组下运​​行.

也许用户'apache'无法访问用户的demo文件,这就是我遇到Forbidden问题的原因?

您有什么想法如何解决这个问题?

谢谢,

詹姆士

apache centos http-status-code-403

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

Django ModelForm:访问视图模板中的字段值

问:在模板中是否可以为我的一个ModelForm字段提取值?如果是这样,怎么样?

背景: 我有一个搜索表单,我用它来允许用户过滤查询结果.并且,结果表以及表单可以导出到Excel工作表.当使用新结果呈现页面时,搜索表单的输入值仍然保持不变.但是,它们仍然包含在表单的每个输入字段的字段对象中.因此,在导出到Excel期间,搜索表单的值不会被抓取,因为该不在其自己的表格单元格中.所以,我想在包含字段值的字段列之后添加一列(但不显示此列).

可以解析字段的HTML字符串并抓取value属性中的任何内容,但我只是作为最后的手段.到目前为止,我已经能够访问我的表单的数据字典并获得我想要的任何字段的对象,但我还没有弄清楚我可以使用哪种方法来实际获取字段的值.

django django-templates django-forms

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

具有多个返回点的重构方法

**编辑:下面有几个选项可行.请根据您对此事的看法进行投票/评论.

我正在使用以下基本结构清理和添加ac#方法的功能:

    public void processStuff()
    {
        Status returnStatus = Status.Success;
        try
        {
            bool step1succeeded = performStep1();
            if (!step1succeeded)
                return Status.Error;

            bool step2suceeded = performStep2();
            if (!step2suceeded)
                return Status.Warning;

            //.. More steps, some of which could change returnStatus..//

            bool step3succeeded = performStep3();
            if (!step3succeeded)
                return Status.Error;
        }
        catch (Exception ex)
        {
            log(ex);
            returnStatus = Status.Error;
        }
        finally
        {
            //some necessary cleanup
        }

        return returnStatus;
    }
Run Code Online (Sandbox Code Playgroud)

有许多步骤,并且在大多数情况下,步骤x必须成功才能进入步骤x + 1.现在,我需要添加一些总是在方法结束时运行的功能,但这取决于返回值.我正在寻找关于如何干净地重构这个以达到预期效果的建议.显而易见的选择是将依赖于返回值的功能放在调用代码中,但我无法修改调用者.

一种选择:

    public void processStuff()
    {
        Status returnStatus = Status.Success;
        try
        {
            bool step1succeeded …
Run Code Online (Sandbox Code Playgroud)

c# refactoring

11
推荐指数
1
解决办法
1905
查看次数