javase重新开始系列之多线程基础

    xiaoxiao2025-08-17  4

    进程(process):一个正在执行的程序,称为进程。(单个cpu无法同时运行多个进程,只能交替轮流运行)

    线程是进程的一个执行序列,一个进程可以包含多个线程。

    线程的生命周期:

    Java提供了Thread类来实现多线程。

    java中提供了继承Thread类和实现Runnable接口两种方法用于创建线程类。(还可以使用第三方库,略)

    继承Thread类:

    可通过继承Thread类,并重写其中的run()方法来定义线程体,以实现线程的具体行为,然后创建该子类的对象,并启动线程。启动线程:线程类对象.start()

    public class 线程类名 extends Thread { …… public void run(){ …… //编写线程的代码 } } 实现Runnable接口:

    任何类都可以实现Runnable接口,而这个类的实例将用一个线程来调用,启动该类的run()方法。Runnable接口只有一个run()方法,其作用和Thread类的run()方法相同。

    public class 目标类名 implements Runnable { …… public void run(){ …… //编写线程的代码 } }

    启动线程:

    以目标类为参数创建 Thread 类的对象 .start(); 例如

    PingPong2 pp1=newPingPong2(“ping”,500));//Pingpong2实现Runnable接口。

    Thread t1=new Thread(pp1);

    t1.start();

    两种方法的对比:

    继承Thread类创建线程的方法简单方便可以直接操作线程,无需使用Thread.currentThread()但不能再继承其他类; 使用Runnable接口方法可以CPU,代码和数据分开,形成清晰的模型;还可以从其他类继承;保持程序风格的一致性

    另:

    关于线程栈和线程的变量

    线程栈是 指某时刻时内存中线程调度的栈信息,当前调用的方法总是位于栈顶。

    Runtime类(运行时类)和Process类(进程类)

    Runtime:提供JVM启动系统接口及运行平台的相关信息。在程序运行时才产生该类对象。

    Process:与当前在执行的进程相关的类。

    例:运行记事本并输出终止值

    public class RuntimeTest { public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); System.out.println("running notepad.exe..."); try { Process p = runtime.exec("notepad.exe"); int exitValue = p.waitFor(); System.out.println("stopping run notepad.exe"); System.out.println("exitvalue:"+exitValue); } catch (IOException | InterruptedException e) { // TODO 自动生成的 catch 块 //e.printStackTrace(); System.out.println("runtime error"); } } }(未完待补充)
    转载请注明原文地址: https://ju.6miu.com/read-1301815.html
    最新回复(0)