小编Jim*_*Jim的帖子

遗嘱执行人是否可以重复使用?

一个执行器对象是否意味着在一个shutdown?之后重用?我的意思是,如果我调用shutdownshutdownNow在执行程序终止后,我应该new创建一个新的线程池,还是可以以某种方式"重置"/重用以前终止的执行程序并重用它?

更新:
如果我需要创建新的线程池,我怎么能"理解"前一个已停止?
例如以下内容:

public void startPool(){  
   if(threadPool != null && !threadPool.isShutdown()){
    return;
   }  
   threadPool = Executors.newCachedThreadPool();  
   //other stuff

}  

public void stopPool(){  
   if(threadPool != null){  
    threadPool.shutdown();   
  }  
}   
Run Code Online (Sandbox Code Playgroud)

不管用.如果我调用stop然后start由于条件将不会创建新的线程池.编码的正确方法是什么?

java concurrency executorservice java.util.concurrent

21
推荐指数
3
解决办法
7529
查看次数

Threadlocal删除?

ThreadLocal我使用时应该总是remove()在我完成时或当我这样做时set,旧的值被替换,因此remove是多余的?

java multithreading thread-local

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

循环遍历html表并获取选中的复选框(JQuery)

我有一个HTML表,每行都有一个复选框.
我想循环遍历表,看看是否有任何复选框被选中.
以下不起作用:

$("#save").click( function() {
    $('#mytable tr').each(function (i, row) {
        var $actualrow = $(row);
        checkbox = $actualrow.find('input:checked');
        console.log($checkbox);
});
Run Code Online (Sandbox Code Playgroud)

这将在控制台中打印以下内容:

[prevObject: jQuery.fn.jQuery.init[1], context: tr, selector: "input:checked", constructor: function, init: function…]

每行,无论是否选中任何复选框.

更新
相同的问题:

$('#mytable tr').each(function (i, row) {                                                                                                 
   var $actualrow = $(row);
    $checkbox = $actualrow.find(':checkbox:checked');
    console.log($checkbox);  
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

18
推荐指数
1
解决办法
10万
查看次数

什么时候是\正则表达式中有用的应用程序?

我不清楚\G运营商的使用/需求.
我读了perldoc:

您使用\ G锚点在最后一个匹配关闭的同一个字符串上开始下一个匹配.

我真的不明白这个说法.当我们使用时,\g我们通常会在最后一场比赛后移动到角色.
如示例所示:

$_ = "1122a44";  
my @pairs = m/(\d\d)/g;   # qw( 11 22 44 )  
Run Code Online (Sandbox Code Playgroud)

然后它说:

如果您使用\ G锚点,则强制22之后的匹配以a开头:

$_ = "1122a44";
my @pairs = m/\G(\d\d)/g;
Run Code Online (Sandbox Code Playgroud)

正则表达式无法匹配,因为它找不到数字,因此下一个匹配失败,匹配运算符返回已找到的对

我也不明白这一点."如果您使用\ G锚点,则在22之后强制匹配以开始." 但没有\ G,a无论如何都会尝试匹配吗?那句话的意思是什么?
我看到在这个例子中,打印的唯一对是11和22.所以44没有尝试过.

该示例还显示使用c选项使其在while 之后为索引44 .

说实话,从所有这些我无法理解这个运算符的用处以及何时应用它.
有人可以帮助我理解这一点,或许有一个有意义的例子吗?

更新
我想我不理解这个关键句子:

如果使用\ G锚点,则强制22之后的匹配以a开头.正则表达式无法匹配,因为它找不到数字,因此下一个匹配失败,匹配运算符返回它已找到的对.

这似乎意味着当匹配失败时,正则表达式不会进行进一步的尝试,并且与答案中的示例一致

也:

匹配在字母a处失败后,perl重置pos()并在同一个字符串上的下一个匹配从头开始.

regex perl

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

在这种情况下,不确定字符串拆分如何实际工作

我没有得到以下内容:

在以下内容中String:

String s = "1234;x;;y;";

如果我做:
String[] s2 = s.split(";");

s2.length变成了4岁

s2[0] = "1234";  
s2[1] = "x";  
s2[2] = "";  
s2[3] = "y"; 
Run Code Online (Sandbox Code Playgroud)

但在字符串中: String s = "1234;x;y;;";

我明白了:

s2.length 成为3和

s2[0] = "1234";  
s2[1] = "x";  
s2[2] = "y"; 
Run Code Online (Sandbox Code Playgroud)

有什么区别,在后一种情况下我也没有得到4?

更新:
使用-1不是我期待的行为.
我的意思是最后一个分号是结尾的String所以在后一个例子中我也期待4作为数组的长度

java regex string split

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

catalina.out中的这些警告是什么?

我在Tomcat 7中有一个Web应用程序.
当我关闭Tomcat时,我看到了这些警告(但并非总是如此)

SEVERE: The web application [/MyApplication] created a ThreadLocal
with key of type
[org.apache.xml.security.algorithms.MessageDigestAlgorithm$1] (value
[org.apache.xml.security.algorithms.MessageDigestAlgorithm$1@2e2c2e2c])
and a value of type [java.util.HashMap] (value
[{http://www.w3.org/2000/09/xmldsig#sha1=MESSAGE DIGEST SHA-1}]) but
failed to remove it when the web application was stopped. Threads are
going to be renewed over time to try and avoid a probable memory leak.
Apr 3, 2012 1:56:19 PM org.apache.catalina.loader.WebappClassLoader
checkThreadLocalMapForLeaks   SEVERE: The web application
[/MyApplication] created a ThreadLocal with key of type
[com.sun.xml.bind.v2.ClassFactory$1] (value
[com.sun.xml.bind.v2.ClassFactory$1@25442544]) and a value …
Run Code Online (Sandbox Code Playgroud)

java multithreading tomcat jaxb java-ee

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

浏览器是根据更改还是仅重新呈现整个页面?

假设我有一个带id的元素,#msg并且在某个条件下我想添加一个类以便应用样式,例如使文本显示为红色.
我可以做$('#msg').addClass(theclass)
我的问题是浏览器是如何反应的?它是重新渲染所有页面还是重新渲染该特定元素?

javascript browser performance jquery

14
推荐指数
2
解决办法
2394
查看次数

无法同时创建本地和远程分支(跟踪)

来自Pro Git:

如果您愿意,可以设置其他跟踪分支 - 不跟踪原点分支并且不跟踪主分支的分支.简单的例子是你刚才看到的例子,运行git checkout -b [branch] [remotename]/[branch]

$ git checkout --track origin/serverfix分支serverfix设置为跟踪远程分支refs/remotes/origin/serverfix.切换到新分支"serverfix"

$ git checkout -b sf origin/serverfix Branch sf设置为跟踪远程分支refs/remotes/origin/serverfix.切换到新的分支"sf"

我的理解是,这提供了一种创建本地分支和上游分支的方法.

但当我这样做时:

git checkout -b iss53 origin/iss53 我明白了:
fatal: Cannot update paths and switch to branch 'iss53' at the same time.

当我这样做时:
git checkout --track origin/iss53 我得到:

致命:无法同时更新路径并切换到分支'iss53'.您是否打算签出无法解决为提交的'origin/iss53'?

为什么?

git version-control git-remote git-branch

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

为什么字符类比交替更快?

似乎使用一个字符类比一个例子中的交替更快,比如:
[abc]vs (a|b|c)
我听说它被推荐,并且使用Time::HiRes我验证的简单测试(慢10倍).在捕获括号产生差异的情况下
也使用(?:a|b|c)不会改变结果.
但我不明白为什么.我认为这是因为回溯,但我在每个位置看到它的方式有3个字符比较所以我不确定回溯是如何影响交替的.这是实施交替性质的结果吗?

regex perl performance character-class regex-alternation

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

如何确保方法只被多个线程调用一次?

我有以下结构:

public void someMethod(){  
   //DO SOME STUFF
   try{  
    doSomeProcessing();  
   }  
   catch (Exception e){  
        loadSomeHeavyData();  
        doSomeProcessing();      
   }    
}  
Run Code Online (Sandbox Code Playgroud)

该方法someMethod 可以由许多线程同时调用.该doSomeProcessing 抛出异常(它在后台,可能成为过时的使用一些数据).
如果抛出异常然后loadSomeHeavyData();做一些耗时的任务,让我们说"更新"所有当前数据,我可以调用doSomeProcessing();.
问题:如何确保loadSomeHeavyData();只调用一次?如果我在条目中放入一些原子标志,loadSomeHeavyData();那么我不能确定何时应该清除它.
我怎么解决这个问题?只是注意:我无法修改,doSomeProcessing();因为它是一个外部API,我使用装饰模式来使用它.

java oop concurrency multithreading

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