首页 文章
  • 4 votes
     answers
     views

    Linux中的“锁定”方法保证了原子性?

    我们知道Linux中的以下内核方法允许我们对共享数据应用各种锁定机制 . 但是,Linux是否保证了方法本身的原子性?除了与普通和读写器旋转锁相关的方法之外,如果执行线程在部分执行下面提到的任何其他方法时被抢占,那么这不会是灾难性的吗? Spin Lock Methods spin_lock(); spin_lock_irq(); spin_lock_irqsave(); spin_unlock(...
  • 3 votes
     answers
     views

    在Windows上以原子方式替换内存映射

    有没有办法在Windows上自动替换内存映射? 在Unix上,带有MAP_FIXED的mmap()将原子地替换在请求的地址处映射的页面 . 但是在Windows上,如果页面已经映射到地址,则不能在地址上使用MapViewOfFileEx() . 必须首先取消映射现有页面,例如使用UnmapViewOfFile() . 这意味着地址未分配的时间很短,因此如果另一个线程同时创建内存映射,则可能将其放在...
  • 0 votes
     answers
     views

    错误:在Thrust程序中未定义标识符“atomicOr”

    我发现在Visual Studio 2012中编译的Thrust程序中无法识别Cuda atomicOr函数 . 我已经读过,调用NVidia nvcc编译器时应该已经包含了所有头文件 . 此问题上的大多数帖子都声明这必然意味着架构设置不正确 . 我根据其他帖子尝试了这些设置:How to set CUDA compiler flags in Visual Studio 2010? ......以...
  • 1 votes
     answers
     views

    如何使用get和put作为原子操作使并发哈希映射线程安全?

    我的下面的方法线程安全吗?此方法是Singleton类 . private static final Map<String, PreparedStatement> holder = new ConcurrentHashMap<>(); public BoundStatement getStatement(String cql) { Session sessio...
  • 2 votes
     answers
     views

    Cassandra计数器表的原子UPDATE和SELECT

    我需要根据以下问题提供帮助/建议: 我有一个计数器表,它由异步进程递增 . 增量更新后,每个进程都需要新值 . 但是这两个操作(UPDATE和SELECT)可能是第二个进程在此期间进一步增加的可能性 . 结果是第一个进程的SELECT结果中的计数器值错误( counter + 2 而不是 counter + 1 ) . 我该如何处理这个问题? 如果我可以将UPDATE和SELECT组合成一个原子事...
  • 0 votes
     answers
     views

    .Net Lock(上下文)是原子的吗?

    我确实理解.net锁确保只有一个线程执行在锁范围内找到的代码行 . 我不明白的是锁是否是原子的 . 执行锁定代码时是否可以中断线程? 例如 - 在我看来,如果一个锁不是原子的,那么下面的代码不是线程安全的: Class example { private int myNumber; private object context = new object(); void Write() ...

热门问题