标签: synchronize

如果可以使用synchronized(this),为什么要使用ReentrantLock?

我试图理解是什么让并发锁如此重要,如果可以使用synchronized (this).在下面的虚拟代码中,我可以做到:

  1. 同步整个方法或同步易受攻击的区域(synchronized(this){...})
  2. 或者使用ReentrantLock锁定易受攻击的代码区域.

码:

    private final ReentrantLock lock = new ReentrantLock(); 
    private static List<Integer> ints;

    public Integer getResult(String name) { 
        .
        .
        .
        lock.lock();
        try {
            if (ints.size()==3) {
                ints=null;
                return -9;
            }   

            for (int x=0; x<ints.size(); x++) {
                System.out.println("["+name+"] "+x+"/"+ints.size()+". values >>>>"+ints.get(x));
            }

        } finally {
            lock.unlock();
        } 
        return random;
}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading synchronize reentrantlock

306
推荐指数
5
解决办法
14万
查看次数

为什么在布尔值上同步不是一个好习惯?

我的建筑师总是说

永远不要在布尔上同步

我无法理解其中的原因,如果有人可以用一个例子来解释为什么它不是一个好的做法,我会非常感激. 参考样本代码

private Boolean isOn = false;
private String statusMessage = "I'm off";
public void doSomeStuffAndToggleTheThing(){

   // Do some stuff
   synchronized(isOn){
      if(isOn){
         isOn = false;
         statusMessage = "I'm off";
         // Do everything else to turn the thing off
      } else {
         isOn = true;
         statusMessage = "I'm on";
         // Do everything else to turn the thing on
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading boolean synchronize

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

AJAX自动保存功能

什么是已实现自动保存功能的最佳javascript库,或库的插件或扩展?

具体需要是能够"保存"数据网格.想想gmail和Google Documents的自动保存.

如果它已经被发明,我不想重新发明轮子.我正在寻找神奇的autoSave()函数的现有实现.

自动保存:推送到保存到持久存储的服务器代码,通常是数据库.服务器代码框架超出了本问题的范围.

请注意,我不是在寻找一个Ajax库,而是一个更高级别的库/框架:与表单本身进行交互.

daemach在jQuery @ http://daemach.blogspot.de/2007/03/autosave-jquery-plugin.html [script host down] 上引入了一个实现.我不相信它符合轻量级和精心设计的标准.

标准

  • 稳定,轻便,精心设计
  • 保存onChange和/或onBlur
  • 在给定的毫秒数之后不再频繁地保存
  • 处理同时发生的多个更新
  • 如果自上次保存后未发生任何更改,则不保存
  • 每个输入类保存到不同的URL

javascript ajax synchronize

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

如何确保已重写的方法已同步

我有一类线程安全的公共代码.

该类中的一个方法是抽象的,需要为不同的实现重写.

我需要确保或至少向其他开发人员标记此方法的所有实现都需要是线程安全的.

做这个的最好方式是什么?

这个效果有关键字或注释吗?

我已经尝试过,abstract synchronized但不允许使用关键字组合.

java synchronization class thread-safety synchronize

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

数据库处理有2个进程

我有一个包含2个部分的应用程序.

  • 创建内容的服务.
  • 使用内容的应用程序

每个都作为不同的进程运行.问题是他们都共享一个数据库.当服务尝试写入某些内容并且UI正在读取数据时,我经常会遇到数据库锁定错误.反之亦然.怎么办呢?

  • 用于访问DB的类是单例类.但由于UI和服务都是两个不同的过程,我认为有两个单身.所以这没有用.
  • synchronise我猜想,即使是因为2个不同的过程也无济于事.
  • Content Providers 也许是一个选项,但由于我使用复杂的查询来挖掘信息,所以也很难使用它.

如何让两个进程共享数据库.任何提示将不胜感激.

database sqlite android synchronize android-contentprovider

22
推荐指数
1
解决办法
4607
查看次数

如何将Android-Project添加到GitHub

我正在使用Android Studio对我的应用进行编码.现在我想开发2台PC并考虑使用Cloud-Service.我决定使用GitHub,但我无法找到一种方法将我的GitHub帐户与我的Android Studio项目同步......任何人都可以向我解释这个吗?

cloud android github synchronize android-studio

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

CookieSyncManager现已弃用,我可以使用哪些内容?

我在我的应用程序中使用cookie在所有浏览器中都能正常工作,但在android设备中,cookie的设置速度并不像我想要的那么快,需要一些时间才能保存cookie,当我删除cookie时也是如此.有什么办法可以让它更好地运作吗?提前感谢您的回答.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webview = new WebView(this);
    webview.getSettings().setJavaScriptEnabled(true); // enable javascript

    CookieManager.setAcceptFileSchemeCookies(true);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.acceptCookie();
    String cookie = CookieManager.getInstance().getCookie("mylink");

    final Activity activity = this;

    webview.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
        }
    });
    webview.loadUrl("mylink");

    setContentView(webview);
}
Run Code Online (Sandbox Code Playgroud)

cookies android webview synchronize

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

使用同步时,Ansible会提示输入密码

我用以下方式使用ansible:

ansible-playbook -f 1 my-play-book.yaml --ask-pass --ask-sudo-pass

在此之后,我被要求输入ssh和sudo密码(两者的密码相同).

在我的playbook文件中,我正在使用同步任务:

synchronize: mode=push src=rel/path/myfolder/ dest=/abs/path/myfolder/

对于每个主机,我被提示输入远程主机的ssh密码(与我在playbook运行开始时输入的密码相同)

如何在执行同步任务时避免输入密码?

passwords ssh rsync synchronize ansible-playbook

16
推荐指数
1
解决办法
4127
查看次数

ruby是否具有Java等效的synchronize关键字?

ruby是否具有Java等效的synchronize关键字?我使用的是1.9.1,我不太看到这样做的优雅方式.

ruby multithreading synchronize

12
推荐指数
2
解决办法
3711
查看次数

我何时在Android游戏中同步方法或在我的方法中使用同步块?

我正在研究在Android中编写简单的图形代码,我注意到了一些synchronized()块.

这背后的原因是什么,我怎么知道什么时候应该"同步"我的代码?

android canvas opengl-es synchronize

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