大白话 Java 多线程,小白都能看的懂的哦

本文用通俗易懂的语言解释了Java线程的概念,强调了使用多线程能提高响应时间和利用多核处理器,介绍了创建线程的两种基本方式,并讨论了线程安全和避免线程安全问题的方法。适合初学者理解Java多线程。
摘要由CSDN通过智能技术生成

什么是线程

  • 说到线程我们应该先了解下什么是进程,下面这个图片大家应该都比较熟悉吧。

img

我们看到的这些单独运行的程序就是一个独立的进程,进程之间是相互独立存在的。我们上面图中的360浏览器、百度云盘等等都是独立的进程。

  • 那么什么是线程呢?

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

上面这个定义是引入百度百科。看起来文绉绉的,说的都是啥玩意,一点也不好理解。那我们就说点人话吧。最大工厂富士康大家都知道吧,里面是不是有很多个生产车间,一个车间里面又有很多条流水线。我们可把一个进程当成一个车间,那么线程就是车间里面的一条条流水线。一个车间的工作过程是一个进程,一个流水线的工作过程是一个线程。进程是操作系统资源分配的最小单位(制造科8号车间负责生产100w个手机壳),线程是cpu调度的最小单位(8号车间里面的每一条生产线负责生手机壳这个具体的任务)。

为什么要使用多线程

  • 更快的响应时间

这个比较好理解,上面的例子比如一个车间一条流水线1天两班倒(24小时工作)可以生产1w个手机壳。如果要生产100w个手机壳如果一个车间就只有一条生产线那是不是需要100天。100天等你生产出来这个手机壳都过时了。那如果一个车间有50条生产线并行生产,那是不是生产100w手机壳2天就完工了。

  • 更多的处理器核心

线程是大多数操作系统调度的基本单元,一个程序作为一个进程来运行,程序运行过程中能够创建多个线程,而一个线程在一个时刻只能运行在一个处理器核心上。

  • 更好的编程模型

​ java为多线程编程提供了良好。考究并且一致的编程模型,使开发人员能够更加专注于问题解决,即为所遇到的问题建立适合的模型,而不是绞尽脑汁地考虑如何将其多线程化。一旦开发人员建立好了模型,稍作修改总是能够方便地映射到Java提供的多线程编程模型上。

多线程创建的方式

  • 第一种,通过继承Thread类创建线程类
package com.workit.demo.thread;

public class ExtendsThread extends Thread {
   
    public static void main(String[] args) {
   
        for(int i = 0;i<10;i++){
   
            //创建并启动线程
            new ExtendsThread().start();
        }
    }
    @Override
    public void run() {
   
        System.out.println(this.getName());
    }
}

  • 第二种,通过实现Runnable接口创建线程类
package com.workit.demo.thread;

public class RunnableThread implements Runnable {
   
    public static void main(String[] args) {
   
        for(int i = 0;i<10
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值