首页 > 系统相关 >创建进程的三种方式

创建进程的三种方式

时间:2023-09-23 17:00:40浏览次数:36  
标签:MyRunnable String Thread 创建 void 三种 进程 new public

Java中创建线程主要有三种方式,分别为继承Thread类、实现Runnable接口、实现 Callable接口。

一、继承Thread类

继承Thread类,重写run()方法,调用start()方法启动线程

public class ThreadTest{
  	public static class MyThread extends Thread{
        @Override
        public void run{
            System.out.println("extends Thread")
        }
    }
    public static void main(String[] args){
        Mythread mythread = new Mythread();
        mythread.start();
    }
}

二、实现Runnable接口

实现 Runnable 接口,重写run()方法

public class MyRunnable implements Runnable {
    private String name;
    public MyRunnable(String name) {
        this.name = name;
    }
    @Override
    public void run() {
        System.out.println("MyRunnable is " + name);
    }
    
}

public class Test1 {
    public static void main(String[] args){
        MyRunnable myRunnable1=new MyRunnable("Runnable1");
        new Thread(myRunnable1).start();
    }
 
}

三、实现Callable接口

上面两种都是没有返回值的,但是如果我们需要获取线程的执行结果,该怎么办呢?

实现Callable接口,重写call()方法,这种方式可以通过FutureTask获取任务执行的返回值

public class CallerTask implements Callable<String>{
  public String call() throws Exception{
    return "I am running."
  }
  public static void main(String[] args){
    FutureTask<String> task = new FutureTask<String>(new CallerTask());
    new Thread(task).start();
    try {
      //等待执行完成,并获取返回结果
      String result=task.get();
      System.out.println(result);
    } catch (InterruptedException e) {
      e.printStackTrace();
    } catch (ExecutionException e) {
      e.printStackTrace();
    }
  }
}

标签:MyRunnable,String,Thread,创建,void,三种,进程,new,public
From: https://blog.51cto.com/u_16269508/7579704

相关文章

  • Python多进程
    一、multiprocessing模块提供了一个创建进程的类Process,其创建进程有两种方法:1、创建一个Process类的实例,并指定目任务函数:示例代码:1frommultiprocessingimportProcess2importos3importtime45deftask_process(delay):6num=07foriinrang......
  • linu 查看进程端口的几种方法
    kill命令Linuxkill命令用于删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。使用kill-l命令列出所有可用信号。最常用的信号是:1(HUP):重新加载进程。9(......
  • 7.3 通过API枚举进程
    首先实现枚举当前系统中所有进程信息,枚举该进程的核心点在于使用CreateToolhelp32Snapshot()函数,该函数用于创建系统进程和线程快照,它可以捕获当前系统中进程和线程相关的信息(如PID、线程数量、线程ID等),在对这些信息进行处理后,可以获得很多有用的数据,如当前系统中所有正在执行的进......
  • 7.4 通过API枚举进程权限
    GetTokenInformation用于检索进程或线程的令牌(Token)信息。Token是一个数据结构,其包含有关进程或线程的安全上下文,代表当前用户或服务的安全标识符和权限信息。GetTokenInformation函数也可以用来获取这些安全信息,通常用于在运行时检查某个进程或线程的权限或安全信息。该函数原......
  • 7.3 通过API枚举进程
    首先实现枚举当前系统中所有进程信息,枚举该进程的核心点在于使用CreateToolhelp32Snapshot()函数,该函数用于创建系统进程和线程快照,它可以捕获当前系统中进程和线程相关的信息(如PID、线程数量、线程ID等),在对这些信息进行处理后,可以获得很多有用的数据,如当前系统中所有正在执行的进......
  • 7.4 通过API枚举进程权限
    GetTokenInformation用于检索进程或线程的令牌(Token)信息。Token是一个数据结构,其包含有关进程或线程的安全上下文,代表当前用户或服务的安全标识符和权限信息。GetTokenInformation函数也可以用来获取这些安全信息,通常用于在运行时检查某个进程或线程的权限或安全信息。该函数......
  • 在Python中创建相关系数矩阵的6种方法
    相关系数矩阵(Correlationmatrix)是数据分析的基本工具。它们让我们了解不同的变量是如何相互关联的。在Python中,有很多个方法可以计算相关系数矩阵,今天我们来对这些方法进行一个总结PandasPandas的DataFrame对象可以使用corr方法直接创建相关矩阵。由于数据科学领域的大多数人都......
  • Linux系统之进程间通信
    IPC通信IPC介绍在Linux系统中,进程间通信(IPC,Inter-ProcessCommunication)是指不同进程之间进行数据交换和共享信息的机制。进程间通信对于实现协作和协调多个进程之间的工作至关重要。为什么进程间需要通信的一些常见原因:数据共享:不同进程可能需要共享数据,以便彼此之间进......
  • 进程与句柄
    目录关联关系内核对象表主要功能进程句柄表主要功能资源的创建过程总结扩展Handle小工具相关参考进程是操作系统进行资源分配和调度的基本单位。句柄是对操作系统资源的引用,用于访问和操作这些资源(如文件、窗口、线程等)。关联关系在Windows中,句柄和进程之间的关联是通过内核......
  • promise对象的三种状态
    Promise对象只有三种状态。异步操作“未完成”(pending)异步操作“已完成”(resolved,又称fulfilled)异步操作“失败”(rejected)settled叫做已决议,不是Promise三种状态. ......