精华内容
下载资源
问答
  • Java 9对Process API进行了改进,以获取正在运行的进程的PID,获取正在运行的进程的子代和/或后代,还添加了一个新类,该类有助于列出所有正在运行的进程,获取有关任意进程的信息以及遍历进程树。这些方法返回的...

    Java 9对Process API进行了改进,以获取正在运行的进程的PID,获取正在运行的进程的子代和/或后代,还添加了一个新类,该类有助于列出所有正在运行的进程,获取有关任意进程的信息以及遍历进程树。这些方法返回的信息可以是操作系统上正在运行的进程的快照。

    在下面的示例中,我们可以使用ProcessHandle的pid()方法获取正在运行的进程的ID。

    示例public class ProcessHandleTest {

    public static void main(String args[]) {

    ProcessHandle processHandle = ProcessHandle.current();

    System.out.println("PID of running Process: " + processHandle.pid());

    System.out.println("Command: " + processHandle.info().command().orElse("N/A"));

    System.out.println("CPU Duration: " + processHandle.info().totalCpuDuration().get().getSeconds() + " seconds");

    }

    }

    输出结果PID of the running Process: 4248

    Command: C:\Program Files\Java\jdk-9.0.4\bin\java.exe

    CPU Duration: 0 seconds

    展开全文
  • 进程和线程的区别进程正在运行的程序,windows任务管理器中列出的每一行便是一个进程进程系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。一个进程可以包含多个线程。比如Java...

    进程和线程的区别

    进程是正在运行的程序,windows任务管理器中列出的每一行便是一个进程。进程是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。

    一个进程可以包含多个线程。比如Java运行在运行时,除了主线程之外,还会至少有一个gc线程用来负责垃圾回收。

    进程的切换相对来讲是比较耗时的,每次切换都要加载、保存上下文。但是线程之间的切换负担就比较轻。因此Java中一般都会使用多线程来执行并行任务。

    进程和线程的创建

    进程创建:

    • 通过Runtime.exec()方法来创建一个进程
    • 通过ProcessBuilder的start方法来创建进程

    线程创建:

    1、继承Thread类,重写其run()方法。则该类的实例化对象的start()方法被调用时即创建了新的线程。

    package com.tong.leetcode.thread;
    
    public class ThreadTest {
    
        static class MyThread extends Thread {
            @Override
            public void run() {
                // 随便做一些事情。这里打印了10次线程的名字
                for (int i = 0; i < 10; i++) {
                    System.out.println(getName() + " " + i);
                }
            }
        }
    
        public static void main(String[] args) {
            // 创建了10个线程,每次创建打印当前线程的名字
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " --> " + i);
                new MyThread().start();
            }
        }
    
    }

    运行结果太长这里就不贴了。能明显看到不同线程的执行存在切换。

    2、实现Runnable接口。重写其Run()方法。则该类的实例化对象的start()方法被调用时即创建了新的线程。

    package com.tong.leetcode.thread;
    
    public class RunnableTest implements Runnable {
        @Override
        public void run() {
            // 随便做一些事情。这里打印了10次线程的名字
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " " + i);
            }
        }
    
        public static void main(String[] args) {
            // 创建了10个线程,每次创建打印当前线程的名字
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " --> " + i);
                new ThreadTest.MyThread().start();
            }
        }
    }

    3、使用CallableFutureTask配合。创建Callable的实现类,实现其call()方法。然后使用FutureTask包装Callable。使用其start()方法启动新线程,使用其get()方法获取子线程的返回值。注意get()方法会等待对应线程执行完毕后才会执行,因此会阻塞其他线程。

    package com.tong.leetcode.thread;
    
    import java.util.List;
    import java.util.Vector;
    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.FutureTask;
    
    public class CallableTest implements Callable<String> {
        @Override
        public String call() {
            // 随便做一些事情。这里打印了10次线程的名字
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " " + i);
            }
            return "the end " + Thread.currentThread().getName();
        }
    
        public static void main(String[] args) throws ExecutionException, InterruptedException {
            List<FutureTask<String>> futureTaskList = new Vector<>();
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " --> " + i);
    
                CallableTest callableTest = new CallableTest();
                FutureTask<String> futureTask = new FutureTask<>(callableTest);
                new Thread(futureTask).start();
                futureTaskList.add(futureTask);
            }
            for (FutureTask<String> stringFutureTask : futureTaskList) {
                System.out.println("运行结果:" + stringFutureTask.get());
            }
        }
    }

    4、使用Callable+Future+线程池。这种方法类似第三种,使用线程池可以对线程管控得更加精准。

    package com.tong.leetcode.thread;
    
    import java.util.List;
    import java.util.Vector;
    import java.util.concurrent.*;
    
    public class CallableThreadPollTest implements Callable<String> {
        @Override
        public String call() {
            // 随便做一些事情。这里打印了10次线程的名字
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " " + i);
            }
            return "the end " + Thread.currentThread().getName();
        }
    
        public static void main(String[] args) throws ExecutionException, InterruptedException {
            List<Future<String>> futureList = new Vector<>(10);
            ExecutorService executorService = Executors.newFixedThreadPool(10);
    
            for (int i = 0; i < 10; i++) {
                System.out.println(Thread.currentThread().getName() + " --> " + i);
    
                CallableThreadPollTest callableTest = new CallableThreadPollTest();
                Future<String> future = executorService.submit(callableTest);
                futureList.add(future);
            }
            for (Future<String> future : futureList) {
                System.out.println("运行结果:" + future.get());
            }
        }
    }

    参考链接:

    Java 进程线程理解www.jianshu.com
    ee242494e437ab53e58a58c8c7a5dbd1.png
    CSDN-专业IT技术社区-登录blog.csdn.netJava多线程学习(三)---线程的生命周期 - sunddenly - 博客园www.cnblogs.com
    7995105bdc3f8d2945ba410afe47e531.png
    JAVA线程生命周期www.jianshu.com
    182dca54ad41ce0d6150b2c6953ee079.png
    展开全文
  • 显示所有进程ps a显示同一终端下所有程序 ps –a显示有效用户相关进程 ps –u列出较完整信息 ps –x查询系统所有进程数据 ps aux查看不与terminal有关的进程 ps ax查看同一部分进程树状态 ps axjfps可以与grep...
    1. 显示所有进程ps a

      显示同一终端下的所有程序 ps –a

      Linux查询正在运行的进程
    2. 显示有效用户的相关进程 ps –u

      Linux查询正在运行的进程
    3. 列出较完整的信息 ps –x

      Linux查询正在运行的进程
    4. 查询系统所有进程数据 ps aux

      Linux查询正在运行的进程
    5. 查看不与terminal有关的进程 ps ax

      Linux查询正在运行的进程
    6. 查看同一部分进程树状态 ps axjf

      Linux查询正在运行的进程
    7. ps可以与grep组合一起查询

      例如: ps -ef | grep java表示查看所有进程里 CMD 是 java 的进程信息等等

    展开全文
  • java虚拟机进程状态工具------jps

    千次阅读 2011-09-08 16:34:16
    jps命令:列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称,以及进程的本地虚拟机的唯一id(LVMID,local virtual machine identifier)。对于本地虚拟机进程来说,LVMID与操作系统进程id(PID)是一致的。...

    jps命令:列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称,以及进程的本地虚拟机的唯一id(LVMID,local virtual machine identifier)。对于本地虚拟机进程来说,LVMID与操作系统的进程id(PID)是一致的。

    jps -l:输出主类的全名,如果进程执行的是jar包,输出jar路径。例如:我在我的本地环境下执行jps -l:

    23077 /home/zhoujie/桌面/astah_community/astah-community.jar
    32172 sun.tools.jps.Jps
    2415

    可以看到astah-community.jar是judeuml画图进程

    2415实际上是eclipe的虚拟机进程,不知道为什么这里没有显示出来,根据进程号查一下:ps aux | grep 2415:

    zhoujie   2415  0.7 19.2 1066680 382580 ?      Sl   Sep07  13:30 /home/zhoujie/桌面/到 eclipse 的链接

    jps -q:只输出LVMID,省略主类的名称

    jps -m:输出虚拟机进程启动时传递给主类main()的参数

    jps -v:输出虚拟机进程启动时jvm参数,我在本机上执行了一下:

    2415  -Dosgi.requiredJavaVersion=1.5 -XX:MaxPermSize=256m -Xms40m -Xmx512m




    展开全文
  • java自带工具使用

    2019-01-20 17:16:54
     1) jps -l 列出正在运行的虚拟机进程  下面是mac系统终端下执行命令后的显示:    2) jps -v 列出虚拟机进程启动时的参数   2. jstat: 虚拟机统计信息监视工具  jstat命令:  格式:-gc:查看...
  • jps(虚拟机进程状况工具)jps(JVM Process Status Tool)是JDK中的一个小工具,它的功能和UNIX的ps命令类似:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的...
  • 常做Java开发的朋友,不管是做纯后端开发,还是做Java Web开发,有一些操作你一定会...我在工作中见过许多人,想要查看当前正在运行的Java应用时,会通过进程管理器(Windows下),或者使用 ps -ef | grep java (...
  • jps可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名以及这些进程的本地虚拟机唯一ID(LVMID),LVMID与操作系统进程ID(PID)是一致的 / # jps 1 ExpenseApplication 6370 Jps 选项 作用 -v 输出...
  • 3.png前言对于JVM的性能监控,主要注意以下关键参数,通过jdk...主要功能:列出正在运行的java进程,并显示执行主类的名称及进程在本地JVM中的ID。与ps命令相似,可以查看java进程ID(LVMID)。使用方法:jps [option...
  • ps 命令用于查看当前正在运行的进程 辅助上grep 用于搜索匹配 ps -ef | grep java ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 -e 显示所有进程,环境变量 此参数的效果和指定&...
  • 这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等jps:虚拟机进程状况工具jps可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及...
  • 2、jps JVM Process Status Tool ,显示制定系统内所有的HotSpot虚拟机进程列出正在运行的虚拟机进程,显示起主类的名称,以及进程的本地虚拟机的唯一id(LVMID,Local Virtual Machine Identifier)。 主要参数
  • 1.jps:虚拟机进程状况工具(JVM Process Status Tool) 该命令的功能是列出正在运行的Java虚拟机进程,并显示虚拟机执行主类(Main Class,main( )函数所在的类)的名称以及这些进程的本地虚拟机唯一ID(Local ...
  • 它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(main()函数所在的类),以及这些进程的本地虚拟机的唯一ID(LVMID)余对于本地虚拟机进程来说,LVMID与操作系统进程ID(PID)是一致的。 jstat:虚拟机...
  • Java多线程

    2013-10-31 22:11:45
    我们在使用windows操作系统时,每当遇到某个软件运行出现卡顿的现象,我们最经常做的就是打开我们的任务管理器来结束相关进程,如下图中映像名称中的是我的电脑目前正在运行的一部分进程,红线框的是firefox...
  • jps:虚拟机进程状况工具可以列出正在运行的虚拟机进程,并显示虛拟机执行主类(Mam Class,main ( ) 函数所在的类)名称,以及这些进程的本地虛拟机唯一ID ( Local Virtual Machine Identifier,LVMID ) 。对于本地...
  • (1)jps:虚拟机进程状况工具 jps(JVM Process Status Tool)功能和Linux系统的ps命令类似,可以列出正在运行的虚拟机进程,并显示虚拟机主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机的...
  • 下面说明几种基于JDK 1.6的几种...可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)。 jps...
  • jps(JVM Process Status Tool)可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID。是使用频率最高的JDK命令行工具,因为其他的JDK工具大多需要输入它查询到的LVMID来确定要...
  • JPS工具文档

    2019-06-01 16:05:47
    jps是jdk提供的工具,能够列出本地正在运行的java虚拟机进程,显示正在运行的进程的JAVA主类和虚拟机进程ID(Local Virtual Machina Identifie,LLMID,非系统进程ID,而是虚拟机分配的虚拟机进程ID),虽然功能比较...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    如何列出某个目录下所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java多态实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码字符串转换为ISO-8859-1编码字符串。 9.Java中访问...
  • 在使用之前,了解目标机器上哪些端口是打开并正在运行服务是非常有用。我们可以使用 netstat 或其他几个 Linux 命令如 NMAP 在本地机器上轻松地列出 Linux 中打开端口。 在本指南中,我们将向你展示如何使用简单...
  • 在使用之前,了解目标机器上哪些端口是打开并正在运行服务是非常有用。我们可以使用 netstat 或其他几个 Linux 命令如 NMAP 在本地机器上轻松地列出 Linux 中打开端口。 在本指南中,我们将向你展示如何使用简单...
  • 虚拟机工具-jps

    2018-05-15 10:16:39
    jps : 虚拟机进程状况工具介绍:jps( JVM Process Status Tool ) 显示指定系统内所有的HotSpot虚拟机进程,简单来说就是显示操作系统中所有的java进程功能描述:功能和linux的ps命令类似,可以列出正在运行的虚拟机...
  • 线上问题处理思路

    2020-05-21 16:21:26
    说明:列出正在运行的java虚拟机进程。就是看现在系统里面运行了几个java程序。 参数: -q:只输出进程 ID -m:输出传入 main 方法的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:输出jvm参数 -V...
  • Java虚拟机性能分析和故障排查工具 JDK命令行工具 ...列出正在运行的虚拟机进程,并显示虚拟机执行主类(main所在的类)名称以及这些进程的本地虚拟机唯一ID:Local Virtual Machine Identifier,LVMID。 虽然.
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    因此,如果一个进程运行超出了它初始分配内存,那么它必须请求操作系统“映射进来(map in)”更多内存。(映射是一个表示一一对应关系数学术语 —— 当内存虚拟地址有一个对应物理地址来存储内存内容时,...
  • 1.1 jps:虚拟机进程状况工具功能和Unix的ps命令类似,可列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)的名称,以及这些经常的本地虚拟机的唯一ID。对于本地虚拟机进程来说,...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

列出系统正在运行的java进程

java 订阅