标签: locking

Git'致命:无法编写新的索引文件'

我已经看到很多关于这个的其他线索,他们没有帮助.

我有一个非常简单的回购 - 两个JavaScript文件.我在Macbook上有100多GB.当我尝试将文件移动到子目录中并在本地暂存我得到的更改时...

致命:无法编写新的索引文件

无论我是在终端中执行所有操作还是使用像SourceTree这样的GUI,都会发生这种情况.此外,其中一个文件被锁定,我无法删除工作目录,直到我注销并重新登录.

为什么会这样?锁是否阻止某些东西上演?如果是这样,我在OS X上解锁问题文件的方法是什么?远程仓库是谷歌代码,如果这有所作为,虽然我还没有推到遥控器.一切都是本地的.

git locking

106
推荐指数
11
解决办法
8万
查看次数

std :: lock_guard或std :: scoped_lock?

C++ 17引入了一个名为的新锁类std::scoped_lock.

从文档来看,它看起来与现有的std::lock_guard类相似.

有什么区别,什么时候应该使用它?

c++ multithreading locking c++17

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

为什么锁定对象必须是静态的?

使用私有静态只读对象来锁定多线程是很常见的.我知道私有通过收紧封装来减少锁定对象的入口点,因此可以访问最重要的内容.

但为什么静止?

private static readonly object Locker = new object();
Run Code Online (Sandbox Code Playgroud)

最后,该字段仅在我的班级中使用,我也可以使用它:

private readonly object Locker = new object();
Run Code Online (Sandbox Code Playgroud)

任何意见?

更新:

作为一个例子,我粘贴了这段代码(只是一个例子).我可以使用静态或非静态锁定器,两者都可以正常工作.考虑到下面的答案,我应该更喜欢这样定义我的储物柜?(对不起,我下周接受采访,需要知道每一个细节:)

private readonly object Locker = new object();
Run Code Online (Sandbox Code Playgroud)

以下是代码:

    private int _priceA;
    private int _priceB;
    private EventWaitHandle[] _waithandle;
    private readonly IService _service;

//ctor
public ModuleAViewModel(IService service)
    {
        _service = service;
        _modelA = new ModelA();
        _waithandle = new ManualResetEvent[2];
        _waithandle[0] = new ManualResetEvent(false);
        _waithandle[1] = new ManualResetEvent(false);
        LoadDataByThread();
    }


 private void LoadDataByThread()
        {
            new Thread(() =>
                           {
                               new Thread(() =>
                               { …
Run Code Online (Sandbox Code Playgroud)

c# multithreading locking

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

MySQL:事务与锁定表

我对事务与锁定表有点混淆,以确保数据库完整性,并确保SELECT和UPDATE保持同步,没有其他连接干扰它.我需要:

SELECT * FROM table WHERE (...) LIMIT 1

if (condition passes) {
   // Update row I got from the select 
   UPDATE table SET column = "value" WHERE (...)

   ... other logic (including INSERT some data) ...
}
Run Code Online (Sandbox Code Playgroud)

我需要确保没有其他查询会干扰并执行相同的操作SELECT(在连接完成更新行之前读取'旧值'.

我知道我可以默认LOCK TABLES table只确保一次只有一个连接正在执行此操作,并在完成后解锁它,但这看起来有点矫枉过正.在事务中包装它会做同样的事情(确保没有其他连接尝试相同的进程而另一个仍处理)?或者会更好SELECT ... FOR UPDATE还是SELECT ... LOCK IN SHARE MODE更好?

mysql sql locking transactions

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

锁定声明有多贵?

我一直在尝试多线程和并行处理,我需要一个计数器来对处理速度进行一些基本的计数和统计分析.为了避免同时使用我的类的问题,我在我的类中的私有变量上使用了一个lock语句:

private object mutex = new object();

public void Count(int amount)
{
 lock(mutex)
 {
  done += amount;
 }
}
Run Code Online (Sandbox Code Playgroud)

但我想知道......锁定变量有多贵?对性能有负面影响?

.net c# parallel-processing multithreading locking

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

如何在IOS上使用swift防止我的应用程序上的屏幕锁定

如何仅在使用导航时阻止屏幕锁定.Waze可以选择这样做,我怎样才能在我的应用程序中执行此操作?

locking screen ios swift

100
推荐指数
5
解决办法
4万
查看次数

独占锁和共享锁之间有什么区别?

根据维基百科,

共享锁有时称为"读锁",而排它锁有时称为"写锁".

你能解释"共享"和"独家"这些术语背后的原因吗?

unix locking

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

.class的Java同步块

这个java代码是什么意思?它会锁定所有物体MyClass吗?

synchronized(MyClass.class) {
   //is all objects of MyClass are thread-safe now ??
}
Run Code Online (Sandbox Code Playgroud)

以上代码与此不同:

synchronized(this) {
   //is all objects of MyClass are thread-safe now ??
}
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization locking synchronized

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

为什么全球翻译锁定?

Python全局解释器锁的功能究竟是什么?编译为字节码的其他语言是否采用类似的机制?

python scripting multithreading locking bytecode

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

lock(new object()) - Cargo cult还是一些疯狂的"语言特例"?

我正在审查一些顾问编写的代码,虽然已经弹出了数十个红旗,但我无法围绕以下片段进行讨论:

private void foo()
{
    if (InvokeRequired)
    {
        lock (new object())
        {
            if (m_bar!= null)
                Invoke(new fooDelegate(foo), new object[] { });
        }
    }
    else
    {
        if(OnBazChanged != null)
            OnBazChanged();
    }
}
Run Code Online (Sandbox Code Playgroud)

什么是锁(新对象())在这做什么?应该没有任何影响,因为它始终锁定在另一个对象上,但这种锁定在整个代码中都是持久的,即使在非复制粘贴的部分也是如此.这是C#语言中的一些特殊情况,编译成我不知道的东西,还是程序员只是采用了一些恰好在前一段时间工作的货物崇拜?

c# locking thread-safety

86
推荐指数
2
解决办法
3912
查看次数