小编das*_*der的帖子

为什么这个类不是线程安全的?

class ThreadSafeClass extends Thread
{
     private static int count = 0;

     public synchronized static void increment()
     {
         count++;
     }

     public synchronized void decrement()
     {
         count--;
     }
}
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么上面的类不是线程安全的?

java multithreading thread-safety

94
推荐指数
5
解决办法
9157
查看次数

使用jQuery删除动态生成的表行

下面的代码在Jquery的帮助下添加和删除表行,add函数工作正常,但删除只有在我删除第一行时才能工作

<table>
    <tr>
    <td><button type="button"  class="removebutton" title="Remove this row">X</button>
</td> 
         <td><input type="text" id="txtTitle" name="txtTitle"></td> 
         <td><input type="text" id="txtLink" name="txtLink"></td> 
    </tr>
</table>
<button id ="addbutton">Add Row</button>
Run Code Online (Sandbox Code Playgroud)

和脚本

 var i = 1;
$("#addbutton").click(function() {
  $("table tr:first").clone().find("input").each(function() {
    $(this).val('').attr({
      'id': function(_, id) {return id + i },
      'name': function(_, name) { return name + i },
      'value': ''               
    });
  }).end().appendTo("table");
  i++;
});

$('button.removebutton').on('click',function() {
    alert("aa");
  $(this).closest( 'tr').remove();
  return false;
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我解释为什么我只能删除第一行?非常感谢

html jquery

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

矢量中的竞争条件

1         if (!vector.contains(element))
2             vector.add(element);
Run Code Online (Sandbox Code Playgroud)

上面的代码不是线程安全的,因为种族条件或复合动作发生在向量中.

我不知道它是怎么发生的

如果一个线程进入第1行并获得一个锁并持有该锁,那么没有其他线程可以获得锁并调用第2行所以哪里是竞争条件

我的理解是正确的还是我错过了一些观点?请详细说明

java concurrency multithreading

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

Stack的当前大小是多少?

假设最初为空的堆栈S已执行总共25个推送操作,12个顶部操作和10个弹出操作,其中3个返回null以指示 空堆栈.S的当前大小是多少?

我认为S.size = 7因为10个弹出操作有10个中的3个返回null表示空堆栈但不确定它是否正确

任何人都可以给出正确的答案和解释吗?

algorithm stack data-structures

0
推荐指数
1
解决办法
1330
查看次数