小编LPa*_*mer的帖子

Java垃圾收集器是否会停止从JNI调用创建的POSIX线程?

我有一个时间关键的应用程序需要在设定的时间表上发送UDP数据报.接收端的抖动容限非常低.使用java ScheduledThreadPoolExecutor实现它是不够的,因为当GC执行"Stop the World"集合时,我的线程会在GC完成它的工作时暂停.

我想用Java实现业务逻辑,同时用C++中的POSIX线程实现时间关键部分(本机环境就是Linux).这将允许我们保存数千行用Java编写的代码,并从本机系统调用中获得所需的调步.

我的问题是:如果我调用一个创建一个单独的POSIX线程的JNI函数,当Java GC执行"停止世界"集合时,该线程是否会被"暂停"?经验丰富的JNI大师是否有任何陷阱想用这种方法指出或者建议的任何替代方法?

一如既往,感谢令人敬畏的堆栈溢出社区!

java multithreading garbage-collection posix

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

在键入完整行而不使用内容辅助时,在光标前插入Eclipse分号

这种行为让我感到沮丧.

我键入以下内容:
fileName.append(c.get(Calendar.HOUR_OF_DAY))

现在,当我输入内容辅助加速时.我没有从内容辅助中选择HOUR_OF_DAY,也没有按Enter键自动填写.我只输入了"HOUR_OF_DAY".我也在行尾输入两个末端的"parens"),我没有按Tab键.

我的光标现在在行尾,我输入;

Eclipse插入; 光标之后!所以当我按下回车键时,分号会移动到下一行!

我已经尝试了我在偏好中可以想到的一切.我打开了"auto smeicolon"选项,该选项应该自动在行尾添加分号,但不能解决这个问题.

一个线索:如果我在键入";"之前按"ENTER" 在该行的末尾,内容辅助窗口消失了; 正好用光标正确插入; 所以内容协助让我感到烦恼.

任何帮助表示赞赏.

eclipse

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

如何加快Java DatagramSocket的性能?

我正在使用Java DatagramSocket类将UDP数据报文发送到端点.数据报必须以60ms的间隔到达端点.

我发现DatagramSocket.Send通常需要> 1 ms(接近2)才能打包并发送不超过56个字节的数据包.这导致我的数据包以62 ms的间隔传送,而不是60 ms.

这是在Windows Vista机器上.以下是我测量时间的方法:

              DatagramPacket d = new DatagramPacket(out, out.length, address, port);
              long nanoTime = System.nanoTime();
    socket.send(d);
    long diff = System.nanoTime() - nanoTime;
    System.out.println( out.length + " in " + diff + "ms." );
Run Code Online (Sandbox Code Playgroud)

有没有人有提示或技巧来加速这个过程?

java sockets

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