相关疑难解决方法(0)

什么是互斥?

互斥体是一种经常用于解决多线程问题的编程概念.我向社区提出的问题:

什么是互斥锁,你如何使用它?

concurrency multithreading mutex

611
推荐指数
10
解决办法
26万
查看次数

全球变量是否不好?

在C/C++中,全局变量和我的教授认为的一样糟糕吗?

c c++ global-variables

233
推荐指数
20
解决办法
10万
查看次数

为什么JavaScript中的不变性如此重要(或需要)?

我目前正在研究React JSReact Native框架.当我读到Facebook的Flux和Redux实现时,在中途遇到Immutability或Immutable-JS库.

问题是,为什么不变性如此重要?变异对象有什么问题?它不简单吗?

举一个例子,让我们考虑一个简单的新闻阅读器应用程序,其中开始屏幕是新闻标题的列表视图.

如果我设置说最初具有值的对象数组,我无法操纵它.这就是不变性原则所说的,对吧?(如果我错了,请纠正我.)但是,如果我有一个必须更新的新的新闻对象怎么办?通常情况下,我可以将对象添加到数组中.在这种情况下我该如何实现?删除商店并重新创建它?是不是将一个对象添加到数组中的操作更便宜?

PS:如果这个例子不是解释不变性的正确方法,请让我知道什么是正确的实际例子.

javascript functional-programming immutability reactjs immutable.js

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

如何实现与ARC兼容的Objective-C单例?

在Xcode 4.2中使用自动引用计数(ARC)时,如何转换(或创建)编译和行为正确的单例类?

singleton objective-c ios automatic-ref-counting

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

在并发编程的上下文中,"数据竞争"和"竞争条件"实际上是相同的

我经常发现这些术语在并发编程的上下文中使用.它们是相同的还是不同的?

language-agnostic concurrency multithreading data-race

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

为什么这个多线程代码会在某些时候打印6?

我正在创建两个线程,并向它们传递一个函数,该函数执行下面显示的代码10,000,000次.

大多数情况下,"5"打印到控制台.有时它是"3"或"4".很清楚为什么会这样.

但是,它也打印"6".这怎么可能?

class Program
{
    private static int _state = 3;

    static void Main(string[] args)
    {
        Thread firstThread = new Thread(Tr);
        Thread secondThread = new Thread(Tr);

        firstThread.Start();
        secondThread.Start();

        firstThread.Join();
        secondThread.Join();

        Console.ReadLine();
    }

    private static void Tr()
    {
        for (int i = 0; i < 10000000; i++)
        {
            if (_state == 3)
            {
                _state++;
                if (_state != 4)
                {
                    Console.Write(_state);
                }
                _state = 3;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

在此输入图像描述

c# multithreading

32
推荐指数
2
解决办法
2550
查看次数

在INSERT之前检查UNIQUE约束与检查

我有一个SQL服务器表RealEstate与列 - Id,属性,Property_Value.该表有大约5-10百万行,并且将来可以增加更多.我只想在此表中不存在Id,Property,Property_Value的组合时插入行.

示例表 -

1,Rooms,5
1,Bath,2
1,Address,New York
2,Rooms,2
2,Bath,1
2,Address,Miami
Run Code Online (Sandbox Code Playgroud)

2,Address,Miami不应允许插入.但是,2,Price,2billion没关系.我很想知道这是"最好的"方法,为什么这样做.为什么这部分对我来说最重要.两种检查方式是 -

  1. 在应用程序级别 - 应用程序应在插入行之前检查是否存在行.
  2. 在数据库级别 - 在所有3列上设置唯一约束,让数据库执行检查而不是人员/应用程序.

是否有任何一种情况会比另一种更好?

谢谢.

PS:我知道有一个类似的问题,但它没有回答我的问题 - 唯一约束与预检查 另外,我认为UNIQUE适用于所有数据库,所以我认为我不应该删除mysql和oracle标签.

mysql sql sql-server oracle

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

我是否需要关注异步Javascript的竞争条件?

假设我加载了一些我将来会知道将要调用window.flashReady并将设置的Flash影片window.flashReadyTriggered = true.

现在我有一段代码,我想在Flash准备就绪时执行.如果window.flashReady已经被调用,我希望它立即执行它,如果尚未调用它我想把它作为回调window.flashReady.天真的方法是这样的:

if(window.flashReadyTriggered) {
  block();
} else {
  window.flashReady = block;
}
Run Code Online (Sandbox Code Playgroud)

因此我基于此的关注是,if条件中的表达式被评估为false,但之后block()可以执行,window.flashReady由外部Flash触发.因此,block永远不会被称为.

是否有更好的设计模式来实现我想要的更高级别目标(例如,手动调用flashReady回调)?如果没有,我是安全的,还是我应该做的其他事情?

javascript

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

PHP flock()替代方案

PHP的文档页面flock()表明在IIS下使用它是不安全的.如果我不能flock在任何情况下都依赖,还有另一种方法可以安全地实现同样的目的吗?

php locking flock

13
推荐指数
1
解决办法
6268
查看次数

种族条件如何有用?

关于什么竞争条件的问题的答案之一被提到故意使用竞争条件的低级算法.种族条件如何有益?

编辑:并发和队列是故意不关心事物排序的一个很好的例子,只要没有丢失.关于"真正多毛的低级算法如何故意这样做"的任何想法?

language-agnostic algorithm race-condition

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