我想将'1g'或'100k'或'15 .3m'等字符串转换为整数.我怀疑这是浮在maven中心的一些图书馆周围,但我不太确定在哪里先看.
更清楚的是,我关注的是无量纲数,或者,如果您愿意,我还关注磁盘空间/文件大小单位.想想-Xmx到java命令.
在一个在线评判编程竞赛问题中,我需要通过标准输出在1秒内输出多达50,000行(除了读取多达200,000对我使用缓冲区的整数).我的逻辑似乎是正确的,但我继续拒绝我的提交超过1秒的运行时间.我删除了我的代码逻辑,只输出一个常量字符串,它仍然超过了时间限制.
有没有比使用System.out.println(String s)每一行输出更快的输出方式?
我正在比较测试程序的两个变体.两者都ForkJoinPool在具有四个内核的机器上使用4线程运行.
在'模式1'中,我非常像执行器服务使用池.我把一堆任务扔进去ExecutorService.invokeAll.我获得了比普通的固定线程执行器服务更好的性能(即使有调用Lucene,那里也有一些I/O).
这里没有分而治之的.从字面上看,我做到了
ExecutorService es = new ForkJoinPool(4);
es.invokeAll(collection_of_Callables);
Run Code Online (Sandbox Code Playgroud)
在'模式2'中,我向池中提交单个任务,并在该任务中调用ForkJoinTask.invokeAll来提交子任务.所以,我有一个继承自的对象,RecursiveAction它被提交到池中.在该类的compute方法中,我调用了invokeAll来自不同类的对象集合,这些对象也继承自RecursiveAction.出于测试目的,我只提交第一个对象的一次一个.我天真地期望看到所有四个线程忙什么,因为线程调用invokeAll将为自己抓取一个子任务而不是仅仅坐着和阻塞.我可以想到为什么它可能不会那样工作的一些原因.
在VisualVM中观察,在模式2中,一个线程几乎总是在等待.我希望看到的是调用invokeAll的线程立即开始处理其中一个被调用的任务,而不仅仅是静坐.这肯定比使用普通线程池尝试此方案所导致的死锁更好,但仍然是什么?它是否保留一个线程,以防其他东西被提交?而且,如果是这样,为什么模式1中的问题不同?
到目前为止,我一直使用添加到java 1.6的引导类路径的jsr166 jar来运行它.
我(相对)是Java的新手,我正在尝试实现一个运行命令列表的.jar,在Windows XP的命令提示符下它将是:
cd\
cd myfolder
del *.lck /s
Run Code Online (Sandbox Code Playgroud)
我的(失败)尝试:
// Lists all files in folder
File folder = new File(dir);
File fList[] = folder.listFiles();
// Searchs .lck
for (int i = 0; i < fList.length; i++) {
String pes = fList.get(i);
if (pes.contains(".lck") == true) {
// and deletes
boolean success = (new File(fList.get(i)).delete());
}
}
Run Code Online (Sandbox Code Playgroud)
我搞砸了"得到(i)",但我觉得我现在非常接近我的目标.
我请求你的帮助,非常感谢你!
编辑
好的!非常感谢大家.通过3个建议的修改,我最终得到:
// Lists all files in folder
File folder = new File(dir);
File fList[] = folder.listFiles();
// Searchs .lck
for (int …Run Code Online (Sandbox Code Playgroud) 我想知道如何在启动之前将参数传递给JVM.例如,
我想我需要修改JVM时区参数.
我在Windows 7中使用eclipse.
我碰到了Xcode 3的Terminal One-liner,每次尝试编译并遇到错误时,它都会播放Inception“ BWAAAAHNN”声音。它可以很好地起到阻止错误的作用,因为没人想被这种声音震撼了。
有人知道这是怎么做的吗?它仍然可以在Xcode 4中使用吗?
编辑:感谢贾斯汀的提示(“首选项”>“行为”>“构建失败”>“播放声音”),我这样做:
curl http://www.freesound.org/data/previews/73/73581_634166-lq.mp3 -o /Developer/Extras/trombone.mp3
defaults write com.apple.dt.Xcode "Xcode.AlertEvents.4_1" -dict-add "Xcode.AlertEvent.BuildFails" '<dict><key>Xcode.Alert.Sound</key><dict><key>enabled</key><true/><key>soundPath</key><string>/Developer/Extras/trombone.mp3</string></dict></dict>'
defaults write com.apple.dt.Xcode "Xcode.AlertEvents" -dict-add "Xcode.AlertEvent.BuildFails" '<dict><key>Xcode.Alert.Sound</key><dict><key>enabled</key><true/><key>soundPath</key><string>/Developer/Extras/trombone.mp3</string></dict></dict>'
Run Code Online (Sandbox Code Playgroud)
尽管我不确定是否需要第三行(Xcode似乎保留了两个版本的行为设置?),但它多于1行。另外,这次我选择了不同的声音。:)
我犯了以下错误:
Executors.newFixedThreadThreadPool游泳池Callable对象列表,以便该call方法依次尝试在同一个线程池上启动任务invokeAll结果是执行程序服务队列的死锁.
我读过的Javadoc似乎并没有禁止这套活动.我错过了什么?有没有办法自定义队列或服务,以便这可以工作?
我是mac os的新手.我有一本Mac专业版.我在Mac上寻找gcc.我已经安装了XCode.所以,C++库已经安装了XCode.但是,我无法从XCode外部使用它.我想在Eclipse中使用c ++库.我不知道如何配置eclipse或如何安装gcc,如果我已经有XCode?我应该使用任何其他图书馆吗?
提示:
当我在终端中写下以下命令时显示错误.
$ gcc -v
-bash: gcc: command not found
$
Run Code Online (Sandbox Code Playgroud)
提前致谢.
通常,您实际上并未在vim中编辑文件.如果您运行vim foo,编辑,编写和退出,vim取消链接foo并创建一个新文件和一个名为的新链接foo.但是,如果文件有多个链接,则vim实际修改该文件.例如:
$ ls -i foo
19428852 foo
$ vi foo
$ ls -i foo
19428857 foo
$ ln foo bar
$ vi bar
$ ls -i bar
19428857 bar
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一种实际编辑文件的方法,似乎有两种选择.使用ed或使用vim但确保在编辑之前至少有两个指向该文件的链接.我想问题是学术性的,因为如果只有一个链接,vim创建一个新文件并不重要,如果在编辑过程中创建了链接,vim似乎做了正确的事情,但我很好奇:
是否可以让vim始终编辑文件,而不是创建一个新文件?
两个python方法定义为:
def function() -> Optional[ast.Module]:
pass
def something(t: ast.Module) -> None:
pass
Run Code Online (Sandbox Code Playgroud)
在呼叫者中:
var = function()
if var:
do_something(var)
Run Code Online (Sandbox Code Playgroud)
类型检查器抱怨我无法将Optional[t]传递给t。我想象有某种铸造机制,但我没有想到。
准确地说,这是一个单元测试,如下所示:
self.assertIsNotNone(var)
do_something(var)
Run Code Online (Sandbox Code Playgroud)
关于可能重复的可选类型注释。检查是否为“无”后使用值?,
new_var: ast.Module = var
Run Code Online (Sandbox Code Playgroud)
得到相同类型的错误。
是否需要“如果”?