javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

iteration

std

c++-faq

git-checkout

generator

coroutine

spring-mvc

reflection

javascript-objects

html5

c ++-Java中同步的对应功能是什么?

Java中的synchronized可保证线程安全。那C++呢?

谢谢!

trans by 2020-08-02T18:03:57Z

数据库-在多个实体之间同步数据的最聪明,最简单的方法是什么?

在当今许多计算机,移动设备或Web服务共享数据或充当集线器的世界中,同步变得越来越重要。 众所周知,同步解决方案不是最舒适的解决方案,因此最好不要完全同步。

我仍然很好奇您将如何实施一个同步解决方案来在多个实体之间进行同步。 已经存在许多不同的方法,例如比较更改的日期字段或哈希值并使用最新数据,或者让用户选择在发生冲突时要使用的内容。 另一种方法是尝试自动合并有冲突的数据(我认为这不是很聪明,因为机器无法猜测用户的意思)。

无论如何,这里有一些与同步相关的问题,我们应该在开始实施同步之前回答这些问题:

  • 最近的数据是什么? 我要如何代表它?
  • 发生冲突时该怎么办? 合并? 我是否提示并询问用户该怎么办?
  • 进入不一致状态(例如,由于不稳定的移动网络连接而断开连接)时,该怎么办?
  • 当我不想进入不稳定状态时该怎么办?
  • 如何恢复被中断的当前同步?
  • 如何处理数据存储(例如,Web服务上的MySQL数据库,iPhone上的Core Data;以及如何在没有大量固定代码的情况下合并/同步数据)?
  • 如何处理在同步过程中(在后台运行,因此不会阻止UI)来自用户的编辑?
  • 我如何以及如何传播更改(例如,用户在计算机上创建一个“ Foo”条目并且不同步;然后他在旅途中创建另一个“ Foo”条目;当他尝试同步两个设备时会发生什么情况) )? 用户是否将具有两个具有不同唯一ID的“ Foo”条目? 用户将只有一个条目,但只有一个?
  • 拥有分层数据时应如何处理同步? 自顶向下? 自下而上? 我应该原子地对待每个条目,还是只看一个超级节点? 过度简化事情和在实施中投入太多时间之间的权衡有多大?

还有很多其他问题,希望我能给您足够的启发。 同步是一个相当普遍的问题。 一旦找到了一种良好的,通用的同步方法,就应该更容易将其应用于具体的应用程序,而不是从头开始思考。 我意识到,已经有很多应用程序尝试解决(或成功解决)同步问题,但是它们已经相当具体,通常不能为同步方法提供足够的答案。

trans by 2020-07-27T01:04:45Z

android-Synchronize(“ Cache_Group”)部分被跳过,为什么会这样?

我试图弄清楚如果我尝试通过它同步不同的值,那么我的syncnize(“ Group_Name”)会被跳过,为什么会这样。

考虑以下问题。

我有一个名为-“ Group1”的SyncGroup,其中有一个名为“ MBOGroup1”的MBO,其中有属性“ name”,“ password”和“ codeCheck”。我获取数据并将属性提取为“ releaseCode”

现在,我有另一个名为“ GroupSub1”的SyncGroup,其中有一个名为“ MBOSubGroup1”的MBO,在其中传递了属性“ releaseCode”我得到一些结果。

条件如下

如果为“ MBOGroup1”获得多行,则为“ GroupSub1”放置一个for循环,并将每个“ releaseCode”数据传递给“ GroupSub1”并提取结果

在大多数情况下,某些releaseCode会被跳过,而我对“ GroupSub1”的“结果”却是不正确的,为什么会这样? 是由于for循环执行的速度比sync()字快,还是诸如CacheGroup Policies的OnDemand和10秒的时间

请帮忙。

由于有些数据需要在循环中放入4个以上的循环,因此我未来的syncGroup结果取决于从前一个取回的结果。

trans by 2020-07-21T19:52:19Z

java-Hashtable和Collections.synchronizedMap(HashMap)之间的区别

据我所知,Collections.synchronizedMap(hash_table)会同步Collections.synchronizedMap(hash_table)接口中的每个方法,而Collections.synchronizedMap(hash_table)返回一个包装对象,该对象包含将委托委托给实际Collections.synchronizedMap(hash_table)的同步方法(如果我错了,请纠正我)。

我有两个问题:

  1. 同步每个方法并具有包装器类有什么区别? 有什么方案可以选择一个?

  2. Collections.synchronizedMap(hash_table)我们怎么办? 这是否等同于简单地使用普通java.util.Hashtable

trans by 2020-07-09T09:11:55Z

多线程-无锁算法的性能真的比全锁算法好吗?

雷蒙德·陈(Raymond Chen)在无锁算法方面进行了大量研究。 除了InterlockedXxx函数的简单情况之外,似乎所有这些方法的主流模式是它们实现自己的锁。 当然,没有处理器锁,但是在每个CPU上不断循环以确保一致性的概念非常像自旋锁。 作为自旋锁,它们将比操作系统附带的常规锁效率更低,因为它们在等待其他线程时不会产生对量子的控制。 因此,每当有人来找我说“但是我的算法是无锁的”时,我的一般回答是“是”?

我很好奇-是否有基准可以显示无锁算法比全锁算法有优势?

trans by 2020-07-07T23:20:29Z

多线程-什么时候需要条件变量,互斥体不够吗?

我确定互斥体还不够,这就是条件变量的概念存在的原因。 但是这让我很吃力,当条件变量是必不可少的时候,我无法用一种具体的方案说服自己。

条件变量,互斥变量和锁问题的可接受答案之间的差异表明条件变量是一个

使用“信号”机制锁定。 当线程需要 等待资源可用。 线程可以在CV上“等待” 然后资源生产者可以“发出信号”变量,其中 如果等待CV的线程得到通知并可以继续 执行

让我感到困惑的是,线程也可以等待互斥量,当它发出信号时,仅意味着该变量现在可用,为什么我需要一个条件变量?

附注:此外,无论如何,当我的视线更偏向于看不到条件变量的目的时,无论如何都需要互斥体来保护条件变量。

trans by 2020-07-06T15:07:59Z

java-确保Spring Quartz作业执行不重叠

我有一个Java程序,每20秒从Spring Qquartz执行一次。 有时只需几秒钟即可执行,但是随着数据量的增加,我确信它会运行20秒或更长时间。

在一个实例仍在执行时,如何防止Quartz触发/触发作业? 触发2个在数据库上执行相同操作的作业效果不佳。 有没有办法可以进行某种同步?

trans by 2020-06-25T01:39:37Z

java-在同一对象上同步两次?

我想知道如果在同一个对象上同步两次,在Java中是否会出现任何奇怪的行为?

场景如下

pulbic class SillyClassName {

    object moo;
    ...
    public void method1(){
        synchronized(moo)
        {
            ....
            method2();
            ....
        }
    }

    public void method2(){
        synchronized(moo)
        {
            doStuff();
        }
    }
}

两种方法都使用该对象并对其进行同步。 当第一个方法调用第二个方法时,它会被锁定而停止吗?

我不这么认为,因为它是同一个线程,但是我不确定是否可能会出现其他任何奇怪的结果。

trans by 2020-02-15T09:04:19Z

java-并发线程同时添加到ArrayList-会发生什么?

我们有多个线程在ArrayList上调用Vector

我的理论是,当两个线程同时调用Vector时,实际上仅将两个对象之一添加到ArrayList中。这是否合理?

如果是这样,您如何解决呢? 使用像Vector这样的同步集合?

trans by 2020-02-06T17:14:42Z

java-LinkedBlockingQueue的insert和remove方法线程安全吗?

我在两个不同的线程之间使用了add。 一个线程通过take添加数据,而另一个线程通过LinkedBlockingQueue接收数据。

我的问题是,我是否需要同步对add和2702441029218868861的访问。2702441029218868862的插入和删除方法线程安全吗?

trans by 2020-01-14T15:29:07Z

Android:如何获取模式对话框或类似的模式行为?

这些天,我正在模拟Android中的模式对话框。 我已经在Google上搜索了很多,讨论很多,但是遗憾的是没有太多的选择可以使它成为模态。 这是一些背景
对话框,模态对话框和阻止
对话框/ AlertDialogs:如何在对话框启动时“阻止执行”(.NET样式)

没有获得模态行为的直接方法,然后我想出了3种可能的解决方案,
1.使用一个以对话框为主题的活动,就像该线程所说的那样,但是我仍然不能使主要活动真正等待对话活动返回。 主要活动变为停止状态,然后重新启动。
2.构建一个工作线程,然后使用线程同步。 但是,这对于我的应用程序来说是一项巨大的重构工作,现在我在主UI线程中只有一个主要活动和一项服务。
3.当出现模式对话框时,在循环内接管事件处理,并在对话框关闭时退出循环。 实际上,这是构建真实的模态对话框的方式,就像在Windows中一样。 我还没有这种原型。

我仍然想以对话为主题的活动来模拟它,
1.通过startActivityForResult()启动对话活动
2.从onActivityResult()获取结果
这是一些资料

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    MyView v = new MyView(this);
    setContentView(v);
}

private final int RESULT_CODE_ALERT = 1;
private boolean mAlertResult = false;
public boolean startAlertDialog() {
    Intent it = new Intent(this, DialogActivity.class);
    it.putExtra("AlertInfo", "This is an alert");
    startActivityForResult(it, RESULT_CODE_ALERT);

    // I want to wait right here
    return mAlertResult;
}

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case RESULT_CODE_ALERT:
        Bundle ret = data.getExtras();
        mAlertResult = ret.getBoolean("AlertResult");
        break;
    }
}
}

startAlertDialog的调用者将阻止执行并期望返回结果。 但是,当然,startAlertDialog立即返回,并且在DialogActivity启动时,主活动进入STOP状态。

所以问题是,如何使主要活动真正地等待结果?
谢谢。

trans by 2020-01-07T20:21:31Z

为什么同步块比同步方法更好?

我已经开始学习线程同步。

同步方法:

public class Counter {

   private static int count = 0;

   public static synchronized int getCount() {
      return count;
   }

   public synchronized setCount(int count) {
      this.count = count;
   }

}

同步块:

public class Singleton {

   private static volatile Singleton _instance;

   public static Singleton getInstance() {
      if (_instance == null) {
         synchronized(Singleton.class) {
            if (_instance == null)
               _instance = new Singleton();
         }
      }
      return _instance;
   }
}

何时应使用synchronized方法和synchronized块?

为什么synchronized块优于synchronized方法?

trans by 2020-01-01T02:23:03Z

如何将Android数据库与在线SQL Server同步?

我正在开发一个Android应用程序,该应用程序在Android平台提供的内置SQLite中存储不同类型的数据。

在应用程序内部,我放置了一个“同步”按钮,该按钮应该用于在本地SQLite数据库与服务器上的在线SQL Server数据库之间同步数据。

解决此问题的解决方法是什么? 可以在Google日历中找到此功能,您可以在其中查看移动设备上日历的事件,并且在添加新事件并同步数据时,也可以通过访问在线帐户来查看更新的数据。

注意:我不想在线集中数据库,因为我还想让移动用户无需互联网即可使用该应用程序。

trans by 2019-12-31T14:57:04Z

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

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

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

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

顺便说一句:我在Ubuntu 12.04上

最终目标是拥有单独的实时备份副本,而无需使用符号链接或安装。我使用Ubuntu One在计算机之间同步数据,过了一会儿出现问题,并且在同步期间所有数据都丢失了。

因此,我想进一步采取措施来保留数据的备份副本:

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

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

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

您对此有何看法?如何知道rsync何时结束?

trans by 2019-10-25T00:29:18Z

如何在Android上使用Git?

我有一个使用git进行同步的桌面应用程序。 我还有一个Android应用程序,其功能与桌面相同,但我不知道如何在其上进行同步。 我尚未在android上找到git的任何实现。 我找到了一个jgit,但是它的文档记录不完整,我什至无法对此进行提交。

我当时在考虑从我的android应用程序向我的git服务器发送远程命令,但这对我来说真的很有趣。你能告诉我是否有其他可以在android上使用的git实现? 如果您有解决办法的任何想法,请告诉我。

trans by 2019-09-28T20:31:57Z

同步 - Java synchronized块与Collections.synchronizedMap

以下代码是否设置为正确同步addToMap()上的呼叫?

public class MyClass {
  private static Map<String, List<String>> synchronizedMap = Collections.synchronizedMap(new HashMap<String, List<String>>());

  public void doWork(String key) {
    List<String> values = null;
    while ((values = synchronizedMap.remove(key)) != null) {
      //do something with values
    }
  }

  public static void addToMap(String key, String value) {
    synchronized (synchronizedMap) {
      if (synchronizedMap.containsKey(key)) {
        synchronizedMap.get(key).add(value);
      }
      else {
        List<String> valuesList = new ArrayList<String>();
        valuesList.add(value);
        synchronizedMap.put(key, valuesList);
      }
    }
  }
}

根据我的理解,我需要addToMap()中的同步块,以防止另一个线程在通过put()的调用之前调用remove()containsKey(),但我不需要doWork()中的同步块,因为另一个线程无法在addToMap()之前进入同步块remove() 返回,因为我最初使用Collections.synchronizedMap()创建了Map。这是正确的吗? 有一个更好的方法吗?

trans by 2019-09-18T06:10:20Z

多线程 - 条件变量与Semaph

什么时候应该使用信号量,什么时候应该使用条件变量(CondVar)?

trans by 2019-09-12T04:12:39Z

同步 - Vagrant中的符号链接和同步文件夹

我想使用Vagrant为我的团队提供一个共同的开发环境。 主机完全不同:

  • 有些使用OS X,有些Linux和一些Windows。
  • 有些使用VMware,有些使用VirtualBox。

在VM内部我们想要运行Linux。

到目前为止,一切都很好。

现在我们的想法是每个开发人员都应该能够使用他们选择的IDE,因此我们引入了一个同步文件夹,该文件夹共享主机和VM之间的源代码。 这基本上也适用......除了符号链接。

在我们的源代码中,我们实际上有一些符号链接,这在VM内部的Linux中不是问题,但在Windows上作为主机,这会导致问题。 我们唯一不能做的就是摆脱符号链接,所以我们需要另一种方法来解决这个问题。

到目前为止,我们尝试了许多选择:

  • 在Vagrant问题中提到了一种解决方法,不幸的是,这只是VirtualBox,并没有帮助那些运行VMware的人。 到目前为止,我们还没有找到一种在Vagrantfile中运行代码的方法,具体取决于所使用的提供程序。
  • 我们现在尝试使用rsync类型,而不是使用标准的共享文件夹。 这适用于Windows,但在OS X上崩溃时有许多错误告诉我们symlink has no referent(每个符号链接一个错误)。
  • 我们考虑过NFS,但只有在不使用Windows作为主机时才有效。
  • 我们也关于SMB,但这只能在Windows上作为主机使用。

我无法想象我们是这个星球上唯一或第一个遇到共享文件夹中的多平台主机和符号链接问题的人。

你如何解决这个问题,以便我们可以保持符号链接,但仍然使用不同的主机操作系统?

trans by 2019-08-26T22:55:49Z

javascript for循环中的异步进程

这个问题在这里已有答案:

  • 循环内的JavaScript闭包 - 简单实用的例子                                     42个答案

我正在运行以下形式的事件循环:

var i;
var j = 10;
for (i = 0; i < j; i++) {

    asynchronousProcess(callbackFunction() {
        alert(i);
    });
}

我试图显示一系列显示数字0到10的警报。问题是,当回调函数被触发时,循环已经经历了几次迭代并且它显示更高的值i。 怎么解决这个问题?

trans by 2019-08-24T20:20:56Z

同步 - 如何与远程Git存储库同步?

我在github上分了一个项目,做了一些改动,到目前为止一直很好。

与此同时,我分叉的存储库发生了变化,我希望将这些更改存入我的存储库。 我怎么做 ?

trans by 2019-08-22T18:45:16Z

1 2 3 下一页 共3页