首页 > 系统相关 >线程和进程

线程和进程

时间:2024-07-05 21:09:38浏览次数:21  
标签:Thread class 线程 进程 new my public

1. 什么是线程? 什么是进程?

  • 正在运行的程序称之为进程。进程它是系统分配资源的基本单位。

  • 线程,又称轻量级进程(Light Weight Process)。线程是进程中的一条执行路径,也是CPU的基本调度单位。若一个程序可同一时间执行多个线程,就是支持多线程的.一个进程由一个或多个线程组成,彼此间完成不同的工作(任务),同时执行,称为多线程。

  • 单线程:就好比一款游戏叫死亡搁浅游戏里,山姆连接着布里吉婴儿,布里吉婴儿就是单线程,山姆就是进程

  • 多线程:在游戏里拔叔和他的冥滩连接的士兵,士兵是多线程有各自的任务,拔叔就是进程

2. java如何创建多线程

  • 继承Thread类
//创建一个线程类
public class MyThread extends Thread{

    //run表示线程启动后执行的业务代码
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("~~~~~~~~~~~~~~~~~~"+i);
        }
    }
}
public class Test01 {
    public static void main(String[] args) {
        //创建线程对象
        MyThread my=new MyThread();
        //开启线程--硬件底层调用线程的run方法
        my.start();
        for (int i = 0; i < 20; i++) {
            System.out.println("main~~~~~~~~~~~~~"+i);
        }
    }
}

设置和获取线程的名称

  • 实现Runnable接口
public class MyRunnable implements Runnable{
    @Override
    public void run() {
        //线程执行时的任务代码
        for (int i = 0; i < 20; i++) {
            System.out.println(Thread.currentThread().getName()+"~~~~~~~~~~~~~"+i);
        }
    }
}
public class Test01 {
    public static void main(String[] args) {
        //创建线程任务对象
        MyRunnable my=new MyRunnable();
        //创建线程对象
        Thread t1=new Thread(my,"线程名");
        t1.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("main+++++++++++++++++++"+i);
        }

    }
}
  • 实现Callable接口
public class MyCallable implements Callable<Double> {
    //call表示线程的任务代码.
    @Override
    public Double call() throws Exception {
        double sum=0;
        for (int i = 0; i <=100 ; i++) {
            sum+=i;
        }
        return sum;
    }
}
public class Test01 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        MyCallable my=new MyCallable();

        //把call对象封装到FutureTask类中 而且任务执行的结果也在FutureTask
        FutureTask task=new FutureTask(my);
        Thread t=new Thread(task);

        t.start();

        Object o = task.get();
        System.out.println(o);
    }
}

标签:Thread,class,线程,进程,new,my,public
From: https://www.cnblogs.com/zyqq/p/18286578

相关文章

  • 并发、多线程和HTTP连接之间有什么关系?
    一、并发的概念 并发是系统同时处理多个任务或事件的能力。在计算中,这意味着系统能够在同一时间段内处理多个任务,而不是严格按照顺序一个接一个地执行它们。并发提高了系统的效率和资源利用率,从而更好地满足用户的需求。在现代应用程序中,用户可能会同时执行多个操作,例如同时......
  • Rust简明教程第九章-多线程和并发
    并发并发指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果进程是一个程序的实例线程是一个进程中执行的一个单一线性执行流程,一个进程包含多个线程,线程可以并发执行main是主线程,系统的入口区别:并发指一个系统能够......
  • GPT-4o不仅能写代码,还能自查Bug,程序员替代进程再进一步!
    目录1 CriticGPT01综合性(Comprehensiveness):02幻觉问题(Hallucinatesaproblem):2其他CriticGPT案例随着人工智能(AI)技术不断进步,AI在编程领域的应用取得了显著的成果。通过使用自然语言处理(NLP)和机器学习(ML)技术,AI可以自动生成代码、检测错误并优化性能。一个例......
  • python多线程与多进程开发实践及填坑记(1)
    1.需求分析1.1.概述基于Flask、Pika、Multiprocessing、Thread搭建一个架构,完成多线程、多进程工作。具体需求如下:并行计算任务:使用multiprocessing模块实现并行计算任务,提高计算效率、计算能力。消息侦听任务:使用threading模块完成RabbitMQ消息队列的侦听任务,将接收到......
  • Java使用线程实现异步运行
    在Java中,实现异步运行的一个常用方式是使用Thread类。下面,我将给出一个详细且完整的示例,该示例将创建一个简单的异步任务,该任务将模拟一个耗时的操作(比如,模拟网络请求或文件处理)。1.使用Thread类实现异步运行假设我们有一个任务,该任务需要模拟一个耗时操作,比如从网络下载一个大......
  • Java使用线程实现异步运行
    在Java中,实现异步运行的一个常用方式是使用Thread类。下面,我将给出一个详细且完整的示例,该示例将创建一个简单的异步任务,该任务将模拟一个耗时的操作(比如,模拟网络请求或文件处理)。1.使用Thread类实现异步运行假设我们有一个任务,该任务需要模拟一个耗时操作,比如从网络下载一......
  • 四种封装 ThreadPoolExecutor 的线程池的使用以及直接使用 ThreadPoolExecutor ,优缺点
    池化思想:线程池、字符串常量池、数据库连接池提高资源的利用率下面是手动创建线程和执行任务过程,可见挺麻烦的,而且线程利用率不高。手动创建线程对象执行任务执行完毕,释放线程对象线程池的优点:提高线程的利用率提高程序的响应速度便于统一管理线程对象可以控制最大并发......
  • Python多线程-线程池ThreadPoolExecutor
    1.线程池不是线程数量越多,程序的执行效率就越快。线程也是一个对象,是需要占用资源的,线程数量过多的话肯定会消耗过多的资源,同时线程间的上下文切换也是一笔不小的开销,所以有时候开辟过多的线程不但不会提高程序的执行效率,反而会适得其反使程序变慢,得不偿失。为了防止无尽的线程......
  • 动态线程池的设置实践
    引言目的:提升系统吞吐率和响应性,同时面临线程池参数配置难题。问题:参数配置不合理可能导致服务器负载过高、服务不可用或内存溢出等问题。解决方案:动态线程池,允许实时变更核心参数并监控运行状态。动态线程池定义概念:能够动态变更核心参数,监控并告警线程池状态的线程池。......
  • Windows编程之多线程事件对象(Event Object)用法详解
    目录一、前言二、基础用法三、API详解1.创建事件对象2控制事件状态3.等待事件对象:四、实战案例1.案例描述 2.代码设计 3.总设计代码4.运行结果一、前言        事件对象(EventObject)是我们在大型项目中,进行多线程同步处理的时候经常用到的一种内核对象......