标签: synchronization

pthreads mutex vs semaphore

pthread库提供的信号量和互斥量有什么区别?

c linux synchronization mutex pthreads

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

等到flag = true

我有这样的javascript函数:

function myFunction(number) {

    var x=number;
    ...
    ... more initializations
    //here need to wait until flag==true
    while(flag==false)
    {}

    ...
    ... do something

}
Run Code Online (Sandbox Code Playgroud)

问题是javascript被困在了一段时间并且卡住了我的程序.所以我的问题是如何才能在函数中间等待,直到flag为true而没有"busy-wait"?

javascript synchronization

68
推荐指数
9
解决办法
15万
查看次数

如何在Java中同步或锁定变量?

让我用这个小而简单的样本:

class Sample {
    private String msg = null;

    public void newmsg(String x){
        msg = x;
    }

    public String getmsg(){
        String temp = msg;
        msg = null;
        return temp;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们假设该函数newmsg()由我无权访问的其他线程调用.

我想使用synchonize方法来保证字符串msg每次只被一个函数使用.换句话说,功能newmsg()不能同时运行getmsg().

java synchronization

67
推荐指数
4
解决办法
12万
查看次数

System.out.println的多线程输出是否是交错的

如果多个线程在没有同步的情况下调用System.out.println(String),输出是否可以交错?或者每行写入原子?该API只字不提同步的,所以这似乎是可能的,或者是由缓冲和/或虚拟机存储器模型等防止交织输出?

编辑:

例如,如果每个线程包含:

System.out.println("ABC");
Run Code Online (Sandbox Code Playgroud)

输出保证是:

ABC
ABC
Run Code Online (Sandbox Code Playgroud)

或者它可能是:

AABC
BC
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization printstream

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

Collections.synchronizedList和synchronized

List<String> list = Collections.synchronizedList(new ArrayList<String>());
synchronized (list) {
    list.add("message");
}
Run Code Online (Sandbox Code Playgroud)

块"synchronized(list){}"真的需要吗?

java collections synchronization

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

如何保持两个文件夹自动同步?

我想要一个文件夹的同步副本及其所有子树.

它应该以这种方式自动工作:每当我创建,修改或删除原始文件夹中的内容时,这些更改都应自动应用于sync-folder.

哪个是完成此任务的最佳方法?

顺便说一句:我在Ubuntu 12.04上

最终目标是拥有一个独立的实时备份副本,而无需使用符号链接或mount.我使用Ubuntu One来同步我的计算机之间的数据,过了一段时间出了问题,我的所有数据都在同步过程中丢失了.

所以我想进一步增加一步来保留我的数据的备份副本:

  • 我把我的数据保存在"文件夹A"中
  • 我需要我当前问题的答案来创建"文件夹A"到"文件夹B"的单向同步(cron带有rsync?的脚本可能是?).我需要它只是从A到B的单向方式,对B的任何更改都不能应用于A.
  • 我只是将"文件夹B"与Ubuntu One保持同步

    .这样,A中的任何更改都将被应用到B,这将从U1检测到并同步到云.如果出现任何问题并且U1在B上删除我的数据,我总是将它们放在A.

受到lanzz评论的启发,另一个想法可能是在启动时运行rsync来备份Ubuntu One下的文件夹内容,并在rsync完成后启动Ubuntu One.

你觉得怎么样?如何知道rsync什么时候结束?

bash synchronization

63
推荐指数
4
解决办法
8万
查看次数

在c#中监视vs Mutex

可能重复:
C#中各种线程同步选项有什么区别?

C#中的Monitor和Mutex有什么区别?

何时使用监视器以及何时在C#中使用互斥锁?

c# multithreading synchronization

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

NDK分辨率结果:项目设置:Gradle模型版本= 5.4.1,NDK版本为UNKNOWN错误

将Android Studio和Gradle更新为3.5后,现在出现此错误:

NDK分辨率结果:项目设置:Gradle模型版本= 5.4.1,NDK版本未知

我将build-gradle中的Gradle版本更改回3.4.2,但这没有帮助。

android synchronization gradle android-ndk android-studio

61
推荐指数
6
解决办法
4万
查看次数

lock()保证是否按请求获得了?

当多个线程请求锁定同一个对象时,CLR是否保证按照请求的顺序获取锁定?

我写了一个测试,看看这是否属实,似乎表明是,但我不确定这是否是确定的.

class LockSequence
{
    private static readonly object _lock = new object();

    private static DateTime _dueTime;

    public static void Test()
    {
        var states = new List<State>();

        _dueTime = DateTime.Now.AddSeconds(5);

        for (int i = 0; i < 10; i++)
        {
            var state = new State {Index = i};
            ThreadPool.QueueUserWorkItem(Go, state);
            states.Add(state);
            Thread.Sleep(100);
        }

        states.ForEach(s => s.Sync.WaitOne());
        states.ForEach(s => s.Sync.Close());
    }

    private static void Go(object state)
    {
        var s = (State) state;

        Console.WriteLine("Go entered: " + s.Index);

        lock (_lock)
        {
            Console.WriteLine("{0,2} …
Run Code Online (Sandbox Code Playgroud)

.net c# synchronization locking

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

更多iCloud核心数据同步问题

所以,它终于发生了.发生了任何独立iPhone开发人员的最糟糕情况.升级我的应用程序后,有几个用户报告完全数据丢失.iCloud核心数据同步无法正常工作.我的用户正在部分使用此应用来运行他们的业务.这是一场真正的灾难性失败.

我改变的唯一与iCloud相关的事情是将键值存储添加到iCloud.核心数据代码保持完全相同,模型版本相同(无迁移)等.

在我的测试中,一切都很美妙!但令我沮丧的是,用户报告说,当他们打开更新的应用程序时,他们的数据不再存在.

这可能是什么原因?

  • 持久性存储URL(无处不URL)不应该改变.
  • 合并冲突也不太可能,因为这个问题应该在更新之前出现.
  • 对新的无处不在的键值存储有些干扰吗?
    (我几乎已经排除了这一点.)

请在下面找到我的托管对象模型和持久性存储的代码.如果您还需要其他任何东西来评估问题,请告诉我.

- (NSManagedObjectContext *)managedObjectContext {

    if (managedObjectContext_ != nil) {
        return managedObjectContext_;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        managedObjectContext_ = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
        [managedObjectContext_ performBlockAndWait:^{
            [managedObjectContext_ setPersistentStoreCoordinator:coordinator];
            if (useICloud) {
                [managedObjectContext_ setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
                [[NSNotificationCenter defaultCenter] addObserver:self
           selector:@selector(mergeiCloud:)
           name:NSPersistentStoreDidImportUbiquitousContentChangesNotification
           object:coordinator];
            }
        }];
    }
    return managedObjectContext_;
}
Run Code Online (Sandbox Code Playgroud)

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
    if (persistentStoreCoordinator_ != nil) {
        return persistentStoreCoordinator_;
    }

    NSMutableDictionary …
Run Code Online (Sandbox Code Playgroud)

iphone synchronization core-data ios icloud

59
推荐指数
1
解决办法
2871
查看次数