java中关于守护线程的疑问?

java中关于守护线程的疑问?,第1张

守护线程也键升好叫笑答精灵线程, 当程序只剩下 守护线程的时候 程序就会退出。

守护线程的作用 类似在后台静默执行 , 比如JVM的垃圾回收机制, 这个就是一个稿铅 守护线程。 而非守护线程则不会。

可以通过GuardServer实现,具体代码如下

 1 public class GuardServer {

 2     private String servername

 3 

 4     public GuardServer(String servername) {

 5         this.servername = servername

 6     }

 7 

 8     public void startServer(String cmd) throws Exception {

 9         System.out.println("Start Server : " + cmd)

10         //将命令分开

11 //        String[] cmds = cmd.split(" ")

12 //        ProcessBuilder builder = new ProcessBuilder(cmds)

13     

14         //

15         ProcessBuilder builder=new ProcessBuilder(new String[]{"/bin/sh","-c",cmd})

16         //将服务器程序的输出定位到/dev/tty

17         builder.redirectOutput(new File("/dev/tty"))

18         builder.redirectError(new File("/dev/tty"))

19         builder.start() // throws IOException

20         Thread.sleep(10000)

21 派喊差    }

22 

23     /**

24      * 检测服务是否存在

25      * 

26      * @return 返回配置的java程序的pid

27      * @return pid >0 返回的是 pid <=0 代表指定java程序未运行

28      * **/

29     public int checkServer() throws Exception {

30         int pid = -1

31         渗碧Process process = null

32         BufferedReader reader = null

33         process = Runtime.getRuntime().exec("jps -l")

34         reader = new BufferedReader(new InputStreamReader(process.getInputStream()))

35         String line

36         while ((line = reader.readLine()) != null) {

37            尘皮 String[] strings = line.split("\\s{1,}")

38             if (strings.length < 2)

39                 continue

40             if (strings[1].contains(servername)) {

41                 pid = Integer.parseInt(strings[0])

42                 break

43             }

44         }

45         reader.close()

46         process.destroy()

47         return pid

48     }

49 }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12536426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存