美文网首页
进程、线程相关概念

进程、线程相关概念

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-07-25 21:09 被阅读0次

一、什么是进程

进程是指运行中的程序、比如我们启动了qq,就启动了一个进程、操作系统就会为该进程分配内存空间。当我们使用迅雷、又启动了一个进程、操作系统将为迅雷分配新的内存空间。

二、什么是线程

1、线程是由进程创建的、是进程的一个实体
2、一个进程可以拥有多个线程
线程其他概念

1、单线程:同一时刻只允许执行一个线程
2、多线程:同一时刻可以执行多个线程、比如:一个qq进程,可以同时打开多个聊天窗口;一个迅雷,可以同时执行多条下载任务
3、并行:在同一时刻,多个处理器同时去执行多条任务叫做并行。
4、并发:在同一时刻,一个处理器去频繁切换执行多条任务叫做并发。

java实现获取cpu数量

public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
        // 获得当前电脑cpu数量/核心数
        int cpuNum = runtime.availableProcessors();
        System.out.println("当前cpu的数量为 "+cpuNum);
}

三、线程的创建方式

1、继承Thread类

public class UseThread {

    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.start();
    }
}

/**
 * 1、当一个类继承了thread类、该类就可以当作线程进行使用
 * 2、我们会重写一个run方法,写自己的业务代码
 * 3、run Thread类、实现了Runnable 接口的 run 方法
 */
class Cat extends Thread{
    int num = 0;
    @Override
    public void run() {
        while(true){
            System.out.println("喵喵喵,我是小猫咪 "+(++num));
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(num == 8){
                break;
            }
        }
    }
}

2、实现Runnable接口
说明:
1、java是单继承的,也就是说,当你的A类已经继承了B类,那么就没有办法使用继承Thread类来实现多线程。
2、这时,java的设计者们提供了另外一种思路,实现Runnable接口来创建线程。
3、启动时,Runnable没有start方法,需要使用静态代理的方式来启动线程。

public class UseThread2 {

    public static void main(String[] args) {
        Targer targer = new Targer();
        Thread thread = new Thread(targer);
        thread.start(); // 使用了静态代理的方式实现
    }
}


class Targer implements Runnable{
    @Override
    public void run() {
        int num = 0;
        while (true){
            System.out.println("老虎嗷嗷叫~"+(++num) +"线程名称 "+Thread.currentThread().getName());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(num == 20){
                break;
            }
        }
    }
}

四、启动线程为什么是start方法

run方法其实就是一个普通的方法、没有真正的启动一个线程、在main线程里、会将run方法执行完毕、才会执行main方法后的代码。



五、继承Thread和实现Runnable接口的区别

1、从java设计本质上讲,继承thread和实现runnable接口是没有任何区别的、thread也是实现了runnable接口下的thread0()来实现的线程创建
2、实现Runnable接口方式更适合于多个线程共享一个资源的情况、并且避免了单继承的限制、建议使用Runnable接口

相关文章

  • 14-进程和任务计划

    本章内容 ◆ 进程相关概念◆ 进程工具◆ 系统性能相关工具◆ 计划任务 进程概念 进程,线程和协程 进程相关概念 ...

  • 进程、线程相关概念

    一、什么是进程 进程是指运行中的程序、比如我们启动了qq,就启动了一个进程、操作系统就会为该进程分配内存空间。当我...

  • ios - 多线程之一:概念介绍

    多线程及其相关概念 字面意思:多线程,多个线程 相关名词介绍 进程 什么是进程? 进程是指在系统中正在运行的一个应...

  • 操作系统相关知识点总结(进程线程)

    进程、线程、多线程相关总结 概念 进程(process) 狭义定义:进程就是一段程序的执行过程。广义定义:进程是一...

  • AnsyncTask异步任务

    相关概念: 1)什么是多线程: 进程:运行中的程序 线程:比进程更小的执行单元,每个进程可能有多条线程,线程需要放...

  • Java多线程中的10个面试要点

    1、进程与线程区别以及线程相关概念 进程就是运行中的程序,每个进程占用独自的内存空间;线程属于进程,一个进程可以有...

  • Python学习17-多线程

    查看所有Python相关学习笔记 多线程开发: 进程: 进程的概念:运行着的程序每个进程至少包含一个线程线程是操作...

  • Python多线程与多进程

    内容简述: 线程与进程的相关概念1、程序,进程,线程,多进程,多线程2、线程的生命周期3、并行与并发,同步与异步4...

  • 1 多线程基础和Sync

    目录 进程、线程概念 创建线程的方法 线程常用方法 线程同步:Sync 1 进程线程概念 1.1 进程 进程指的是...

  • Android学习之旅-Android中的多进程模式[艺术探索学

    进程与线程 在学习多进程之前有必要了解下进程与线程的区别以及相关的概念,线程是 CPU调度的最小单元,同时线程是一...

网友评论

      本文标题:进程、线程相关概念

      本文链接:https://www.haomeiwen.com/subject/fxovmltx.html