小编And*_*rew的帖子

我应该在Java程序中使用多少个线程?

我最近继承了一个小型Java程序,它从大型数据库中获取信息,进行一些处理并生成有关信息的详细图像.原作者使用单个线程编写代码,然后对其进行修改以允许它使用多个线程.

在代码中他定义了一个常量;

//  number of threads
public static final int THREADS =  Runtime.getRuntime().availableProcessors();
Run Code Online (Sandbox Code Playgroud)

然后设置用于创建映像的线程数.

我理解他的理由是线程数不能大于可用处理器的数量,因此将其设置为从处理器中获取全部潜力的数量.它是否正确?或者是否有更好的方法来充分利用处理器的潜力?

编辑:为了进一步澄清,正在线程化的特定算法会扩展到正在创建的图片的分辨率(每个像素1个线程).这显然不是最好的解决方案.该算法所做的工作是一直需要的工作,并且是完全数学运算,没有锁或其他因素会导致任何给定的线程休眠.我只想最大化程序CPU利用率,以减少完成时间.

java multithreading

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

如何关闭Spring 3调试日志?

我想关闭Spring 3.1的log4j日志记录,同时为我自己的代码留下调试.

我尝试将这一行粘贴到我的log4j.properties中:

log4j.category.org.springframework = WARN 
Run Code Online (Sandbox Code Playgroud)

要得到这个:

# Root Logger Setup:  Includes the level of reporting and appenders -> where
#                     log messages get sent                                              
log4j.rootLogger                            = DEBUG,ca,fa

log4j.category.org.springframework = WARN

#ca - Console Appender - Send messages to the console
log4j.appender.ca                          = org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout                   = org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern = [acme]: [%-5p] - %d{yyyy-MMM-dd HH:mm:ss} -  %c{1}:%M(): %m%n



#fa - File Appender - Send messages to a log file
log4j.appender.fa                            = org.apache.log4j.RollingFileAppender
log4j.appender.fa.File                       = acme.log
log4j.appender.fa.MaxFileSize                = 100KB
log4j.appender.fa.MaxBackupIndex             = 10 …
Run Code Online (Sandbox Code Playgroud)

spring log4j

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

如果父类/接口发生变化,类的字节码是否会发生变化?

我正在尝试确定是否需要在构建链中重新编译一些jar,如果我有以下结构,jar 1在其源更改时编译,jar 2在其源更改或jar 1重新编译时编译.

罐子1:

public class Foo /* impl*/
Run Code Online (Sandbox Code Playgroud)

罐子2:

public class Bar extends Foo /*impl*/
Run Code Online (Sandbox Code Playgroud)

假设两个类之间的合同没有改变,即.添加抽象方法或将方法添加到接口等.

我需要重新编译jar 2吗?即.如果对Foo中的私有方法进行了一些更改,Bar需要重新编译吗?

我尝试通过比较两个类的字节码来测试这个,在一个中更改一堆并且正如预期的那样它没有改变.然而,我的同事坚持认为他们遇到过这样的情况:即使合同没有变更,他们也必须重新编译一切才能工作,但是他们不记得原因是什么......所以举证责任在我身上证明了这不应该是必要的.是否存在对超类进行更改将需要重新编译子类的情况,即使两者之间的接口保持不变?

java bytecode class

7
推荐指数
1
解决办法
930
查看次数

jqGrid你如何循环网格?

我有一个使用jquery的jqgrid的项目.如何遍历网格行并获取值?

有点像

var rows = $(#mygrid).rows
foreach(row in rows)
    alert(row["firstName"])
Run Code Online (Sandbox Code Playgroud)

我甚至看到过这样的东西,但没有关于如何处理它的例子.

var rows = $('#grid').jqGrid('getCol','firstName');
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui

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

IE9通过masking canvas元素转发鼠标事件

我绝对定位的画布元素阻止了所有鼠标事件,因此可以点击它们下面没有任何内容,这里这里提到同样的问题.

我有多个画布层需要在特定的z-index处,所以我需要通过画布转发鼠标事件.pointer-events: none;适用于良好的浏览器,但对于IE9我需要javascript来做,这是我目前的解决方案,

 var evts = [ 'click', 'mousedown', 'mouseup', 'dblclick'],
                canvases = $('canvas');

            $.each(evts, function(_, event){
                canvases.bind(event, function(evt){
                    var target,
                        pEvent;
                    $(this).hide();
                    target = document.elementFromPoint(evt.clientX, evt.clientY); 
                    $(this).show();
                    pEvent = $.Event(event);
                    pEvent.target = target;
                    pEvent.data = evt.data;
                    pEvent.currentTarget = target;
                    pEvent.pageX = evt.pageX;
                    pEvent.pageY = evt.pageY;
                    pEvent.result = evt.result;
                    pEvent.timeStamp = evt.timeStamp;
                    pEvent.which = evt.which;
                    $(target).trigger(event, pEvent);
                 });
            });   
Run Code Online (Sandbox Code Playgroud)

工作示例, jsFiddle

问题;

1.我正在创建新事件并传递相关数据,是否可以安全地传递evtvar并修改目标和currentTarget?

2.我怎样才能传播右键?

或者有没有人有更好的方法来实现这一目标?其他相关问题相当陈旧.

javascript jquery canvas javascript-events internet-explorer-9

5
推荐指数
1
解决办法
2929
查看次数

范围输入禁用在chrome中不起作用

我正在禁用我的范围输入但是在Chrome中它显示为灰色,但它仍然可用.

<input type="range" disabled min="0" max="100"/>
Run Code Online (Sandbox Code Playgroud)

我认为以上不允许你改变它的价值.

我做错了吗?

的jsfiddle

相关规范已禁用

html javascript html5 google-chrome

5
推荐指数
1
解决办法
4857
查看次数

如何在d3v4中的两点之间绘制箭头?

我创建了绘制节点之间的箭头在我的D3图所示的片段自定义路径渲染器.我有最后一个问题,我被困住了,

如何旋转箭头部分使其指向曲线方向而不是光源方向?

var w2 = 6,
  ar2 = w2 * 2,
  ah = w2 * 3,
  baseHeight = 30;

// Arrow function
function CurvedArrow(context, index) {
  this._context = context;
  this._index = index;
}
CurvedArrow.prototype = {
  areaStart: function() {
    this._line = 0;
  },
  areaEnd: function() {
    this._line = NaN;
  },
  lineStart: function() {
    this._point = 0;
  },
  lineEnd: function() {
    if (this._line || (this._line !== 0 && this._point === 1)) {
      this._context.closePath();
    }
    this._line = 1 - this._line;
  },
  point: …
Run Code Online (Sandbox Code Playgroud)

javascript geometry d3.js d3.js-v4

5
推荐指数
1
解决办法
485
查看次数

点击添加div,然后在每次点击后切换它

  1. 我正在尝试点击添加,添加的内容将首次出现.

  2. 添加之后,我想点击添加,它只会切换"添加",而不是在每次点击时添加"添加"

jQuery的:

$(function(){
    var NewContent='<div class="added">Added</div>'
    $(".add").click(function(){
        $("#spin").after(NewContent);
    });
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<span class="add">add</span>
<span id="spin"></span>
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴:http://jsfiddle.net/Abgec/

jquery append toggle

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

在webkit滚动条和屏幕边缘之间放置一些空格

我有这个使用webkit滚动条的css代码.

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
Run Code Online (Sandbox Code Playgroud)

这将使滚动条紧靠屏幕边缘.有什么办法可以在屏幕边缘滚动条之间出一些空间吗?

css webkit scrollbar

4
推荐指数
1
解决办法
3235
查看次数

反复访问Java类中的静态变量

我没有别的选择,只能通过反射访问一组我无法修改的类.但是,使用下面主方法中显示的方法会抛出NullPointerException.调用f1.get(null)时,空指针在构造函数中为"table".

我无法预先实例化类,因为唯一的构造函数是显示的,它是私有的.所以我也无法明确设置表.

任何人都知道我可以反思地称呼Legacy.A?

public class Legacy {   
    public static final Legacy A = new Legacy("A");
    public static final Legacy B = new Legacy("B");

    private String type0;
    private static Map<String, Legacy> table = new HashMap<String, Legacy>();

    private Legacy(String id) {
        type0 = id;
        table.put(type0, this);
    }

    public static void main(String[] args) throws Exception {
        Field f1 = Legacy.class.getDeclaredField("A");
        Object o = f1.get(null);    
    }
}
Run Code Online (Sandbox Code Playgroud)

在"反射==不好!!!"之前

java reflection initialization

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