我最近继承了一个小型Java程序,它从大型数据库中获取信息,进行一些处理并生成有关信息的详细图像.原作者使用单个线程编写代码,然后对其进行修改以允许它使用多个线程.
在代码中他定义了一个常量;
// number of threads
public static final int THREADS = Runtime.getRuntime().availableProcessors();
Run Code Online (Sandbox Code Playgroud)
然后设置用于创建映像的线程数.
我理解他的理由是线程数不能大于可用处理器的数量,因此将其设置为从处理器中获取全部潜力的数量.它是否正确?或者是否有更好的方法来充分利用处理器的潜力?
编辑:为了进一步澄清,正在线程化的特定算法会扩展到正在创建的图片的分辨率(每个像素1个线程).这显然不是最好的解决方案.该算法所做的工作是一直需要的工作,并且是完全数学运算,没有锁或其他因素会导致任何给定的线程休眠.我只想最大化程序CPU利用率,以减少完成时间.
我想关闭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) 我正在尝试确定是否需要在构建链中重新编译一些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需要重新编译吗?
我尝试通过比较两个类的字节码来测试这个,在一个中更改一堆并且正如预期的那样它没有改变.然而,我的同事坚持认为他们遇到过这样的情况:即使合同没有变更,他们也必须重新编译一切才能工作,但是他们不记得原因是什么......所以举证责任在我身上证明了这不应该是必要的.是否存在对超类进行更改将需要重新编译子类的情况,即使两者之间的接口保持不变?
我有一个使用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) 我绝对定位的画布元素阻止了所有鼠标事件,因此可以点击它们下面没有任何内容,这里和这里提到了同样的问题.
我有多个画布层需要在特定的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.我正在创建新事件并传递相关数据,是否可以安全地传递evt
var并修改目标和currentTarget?
2.我怎样才能传播右键?
或者有没有人有更好的方法来实现这一目标?其他相关问题相当陈旧.
javascript jquery canvas javascript-events internet-explorer-9
我正在禁用我的范围输入但是在Chrome中它显示为灰色,但它仍然可用.
<input type="range" disabled min="0" max="100"/>
Run Code Online (Sandbox Code Playgroud)
我认为以上不允许你改变它的价值.
我做错了吗?
相关规范已禁用
我创建了绘制节点之间的箭头在我的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)我正在尝试点击添加,添加的内容将首次出现.
添加之后,我想点击添加,它只会切换"添加",而不是在每次点击时添加"添加"
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/
我有这个使用webkit滚动条的css代码.
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
Run Code Online (Sandbox Code Playgroud)
这将使滚动条紧靠屏幕边缘.有什么办法可以在屏幕边缘和滚动条之间留出一些空间吗?
我没有别的选择,只能通过反射访问一组我无法修改的类.但是,使用下面主方法中显示的方法会抛出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)
在"反射==不好!!!"之前