我试图找到并行运行多个命令的方法sh并等待它完成.我发现以下不起作用(sh: 1: Syntax error: ";" unexpected):
sh -c '(sleep 3 && echo 1) & ; (sleep 3 && echo 2) & ; wait'
Run Code Online (Sandbox Code Playgroud)
但是这种语法按预期工作:
sh -c '(sleep 3 && echo 1) & ;; (sleep 3 && echo 2) & ;; wait'
Run Code Online (Sandbox Code Playgroud)
但我不明白有什么区别.我的问题是;;它应该被使用的含义是什么?
我正在寻找允许文本"标准化"的java库.类似于标准的Normalizer,但更宽(类似于utf8proc LUMP).
它应该将所有类型的特殊字符替换为ASCII等效字符(如果可能的话).代码为32的所有空间变体,所有变量的缺陷(长,短,薄等)到代码45等等.
我需要将double转换为具有给定精度的字符串.String.format("%.3f", value)(或DecimalFormat)完成这项工作,但基准测试表明,即使与非常快速的Double.toString转换(在我的机器上转换100万个数字大约1-3秒)相比,它也会变慢.
有没有更好的方法呢?
从0到1000000的随机数,结果是每毫秒的运算(Java 1.7.0_45)
Benchmark Mean Mean error Units
String_format 747.394 13.197 ops/ms
BigDecimal_toPlainString 1349.552 31.144 ops/ms
DecimalFormat_format 1890.917 28.886 ops/ms
Double_toString 3341.941 85.453 ops/ms
DoubleFormatUtil_formatDouble 7760.968 87.630 ops/ms
SO_User_format 14269.388 168.206 ops/ms
Run Code Online (Sandbox Code Playgroud)
Java 10,+ ryu
Mode Cnt Score Error Units
String_format thrpt 20 998.741 ± 52.704 ops/ms
BigDecimal_toPlainString thrpt 20 2079.965 ± 101.398 ops/ms
DecimalFormat_format thrpt 20 2040.792 ± 48.378 ops/ms
Double_toString thrpt 20 3575.301 ± 112.548 ops/ms
DoubleFormatUtil_formatDouble thrpt 20 7206.281 …Run Code Online (Sandbox Code Playgroud) 在应用程序线程转储中,我可以看到有五个线程的线程池,如下所示
"pool-1-thread-5" prio=10 tid=0x000000000101a000 nid=0xe1f in Object.wait() [0x00007f3c66086000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000007b8e57af8> (a hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
at java.lang.Object.wait(Object.java:503)
at hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:316)
- locked <0x00000007b8e57af8> (a hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:994)
at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1054)
at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)
但我没有直接使用这样的东西,并没有在依赖中看到这样的东西.
这是什么(hidden.edu.emory.mathcs.backport)及其使用的原因(在jdk 7上运行的应用程序)?我可以检测应用程序的哪个部分启动它?
java stack-trace thread-dump java.util.concurrent threadpool
哪个问题可能会导致kill -9生产应用程序(在linux中准确)?
我有应用程序做一些定期工作,停止这些需要很长时间,我不在乎是否会中止某些工作 - 工作可以通过新流程完成.那么我kill -9可以立即使用它来停止它,否则会导致严重的操作系统问题?
例如,Unicorn将其用作正常的工作程序:
当您的应用程序出错时,BOFH可以"杀死-9"失控的工作进程,而不必担心会撕毁所有客户端,只需一个.
但是这篇文章声称:
kill(1)的-9(或KILL)参数永远不应该在Unix系统上使用
PS:我知道kill -9应用程序无法处理,但我知道对于应用程序来说它不会导致任何问题,我只是感兴趣它可以在操作系统级别上引起一些问题吗?shared memory segments active, lingering sockets对我来说听起来很危险
应用程序启动时,我收到警告消息(数十次):
Dec 08, 2012 5:10:41 PM org.springframework.beans.TypeConverterDelegate findDefaultEditor
WARNING: PropertyEditor [sun.beans.editors.EnumEditor] found through deprecated global PropertyEditorManager fallback - consider using a more isolated form of registration, e.g. on the BeanWrapper/BeanFactory!
Run Code Online (Sandbox Code Playgroud)
谷歌表明这是非常常见的消息,但不幸的是没有说明它发生的原因.我该如何避免这些警告?
春季版2.5.6.
我在 /etc/hosts 文件中有记录,其中包含 IPv4 和 IPv6 地址,host-name.com
但有时我会UnknownHostException这样:
redis.clients.jedis.exceptions.JedisConnectionException: java.net.UnknownHostException: host-name.com
at redis.clients.jedis.Connection.connect(Connection.java:137)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:65)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1706)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:28)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1188)
at redis.clients.util.Pool.getResource(Pool.java:38)
... 2 common frames omitted
Caused by: java.net.UnknownHostException: host-name.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at redis.clients.jedis.Connection.connect(Connection.java:132)
... 7 common frames omitted
Run Code Online (Sandbox Code Playgroud)
这怎么可能,我该如何解决?
-Djava.net.preferIPv4Stack=truehosts: files dns-rw-r--r--尝试将番石榴从版本19升级到20并收到此错误:
Error:java: cannot access com.google.errorprone.annotations.CanIgnoreReturnValue
class file for com.google.errorprone.annotations.CanIgnoreReturnValue not found
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决它?我的项目中没有任何对errorprone的引用.在errorprone下面添加依赖项无济于事:
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
Run Code Online (Sandbox Code Playgroud) java ×6
linux ×2
dash-shell ×1
double ×1
errorprone ×1
guava ×1
host ×1
hosts ×1
jedis ×1
kill ×1
optimization ×1
precision ×1
sh ×1
spring ×1
stack-trace ×1
string ×1
syntax ×1
text ×1
thread-dump ×1
threadpool ×1
unicorn ×1
warnings ×1