线程和进程

本文介绍了线程和进程的概念,线程作为进程的最小执行单元,允许程序同时执行多个任务。单线程与多线程的区别在于是否能并发执行任务。在Java中,可以通过继承Thread类、实现Runnable接口或使用ExecutorService来创建线程。文中提供了一个多线程示例,展示了线程的交替执行。进程则是一个程序的运行实例,如手机上的多个应用,它们并发执行,但进程崩溃会导致所有线程结束。
摘要由CSDN通过智能技术生成

什么是线程和进程

线程

线程是进程的最小组成单位,每个线程干自己的事

  • 单线程

一个程序当中只产生了一个任务,也就是一格单独的线程,比如说我就看视频

  • 多线程

多线程是指一个程序中产生了多个任务并且同时进行,比如说我一边和女朋友打电话一边打游戏,日常生活当中都是可以同时进行
多线程侧重的是程序并行执行这样能够提高程序的执行效率,不想单线程逐次执行。

  • 线程创建

线程的创建主要分为一下三种
通过继承Thread类 run()无返回值
通过继承Runable接口
通过使用ExecutorService,Callable,Future实现有返回结果的多线程run()是有返回值的

案例:

package jucdemo;

/**
 * @author 邓亚非
 */
public class ThreadDemo01 extends Thread {

    private String name;

    public ThreadDemo01(String name){
        this.name=name;
    }
    @Override
    public void run() {
        for (int i=0;i<=100;i++){
            System.out.println(this.name+"跑了"+i+"米");
        }
        try {
//            隔一秒钟休息一次
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
//        使用多态
        Thread p1=new ThreadDemo01("花木兰");
        Thread p3=new ThreadDemo01("关羽");
        Thread p2=new ThreadDemo01("马超");
//        如果使用main调用run方法,他们就是一个普通方法,不是多线程并行在执行
//        p1.run();
//        p2.run();
//        p3.run();
        p1.start();
        p2.start();
        p3.start();

    }
}

在这里插入图片描述如果你在main方法里面直接用run方法不会交替执行,必须通过调用start方法启动线程
在这里插入图片描述
上图可以看出他们是交替执行的,就是一个多线程在跑

进程

一个正在运行的程序结束一个进程,举个例子,手机看视频和玩游戏
手机的运行就是一个进程,看视频和玩游戏分别是两个线程各自执行,视频不能看了,也不会影响你玩游戏,但是进程手机崩了,两个都不能玩了,进程结束,线程结束

看视频和玩游戏两者是并发的,并发是指他们两个可以同时进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值