【多线程初识】

1.进程->线程

2.进程VS线程

3.Java线程创建


1.进程->线程

进程的开销大,所以有了线程,线程是轻量级进程,一个进程里至少有一个线程

生产线:比如说我有一座工厂(进程),里面有一张机床(线程)在工作,为了提升效率我决定再开设一个厂,然后买整一张机床,那么我的效率就提高了两倍。但同时我也遇到了相应的问题,我不仅要花成本开厂买机床,还要招新的员工,因为这是两个不同的厂房,那么不同的厂房就无法共享同一批资源(人力,物力,运力.....)

那么我重新做了决定:在原来的厂房里增加一张机床即可,这样我能在复用原有的资源情况下,同时提升了效率

吃鸡:一个老铁,一个包间,100只炸鸡,吃到天荒地老......

那么我同样按照生产线的思路来提高吃鸡效率,同一个包间里,增加多个老铁,一起吃鸡,效率大大提高,但引来了一个问题,食物争抢导致老铁与老铁之间产生了冲突

难办?那就别办了,从而导致乌鸦哥掀桌,谁都别想吃鸡了,这就是线程冲突,也就是线程安全问题


2.线程VS进程

(1)根本区别:进程是资源调度的基本单位,线程是操作系统运行的基本单位

(2)内存关系:进程与进程之间相互独立,往往互不干扰,线程共享同一进程资源

(3)开销:进程开销大,线程是轻量级进程

(4)稳定性:一个进程崩了不影响其他进程,一个线程崩了可能导致所有线程陪葬


3.Java线程创建

步骤:继承->重写->实例->启动->sleep()

(1)继承:定义一个类继承父类Thread

(2)重写:重写Thread的run方法 (重载VS重写)

(3)实例:实例化对象,往往通过原生Thread向上转型来实例化对象

(4)启动:调用start()方法,此时才会真正创建一个线程

(5)sleep():这是Tread自带j静态的方法,用来线程休眠

重载VS重写:重载是同类同名不同参数,重写是子类重新实现父类的方法



java 复制代码
//继承
class MyThread extends Thread{
    //2.重写

    @Override
    public void run() {
        while (true){
            System.out.println("hello thread");
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

    }
}
public class Demo1 {
    public static void main(String[] args) throws InterruptedException {
        //MyThread thread = new MyThread();

        //3.实例
        Thread thread = new MyThread();

        //4.启动
        thread.start();

        while (true){
            System.out.println("hello main");
            Thread.sleep(2000);
        }
    }
}
相关推荐
蓝速科技1 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
H_oRIZoN_2 小时前
Linux入门DAY41(51 单片机 串口与通信协议)
linux·运维·单片机
小马同学-3 小时前
OpenStack 使用实战:Web 界面与 CLI 命令行实验
运维·云计算·openstack
GeW3 小时前
RHCE备考别瞎学!按这个计划走,30天提高通过率,快速拿证
linux
Escalating_xu4 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
傲世仙尊4 小时前
System V 进程间通信详解:共享内存、消息队列与信号量(CSDN博客)
linux·开发语言·c++
码农小韩4 小时前
Linux应用开发(六)——进程间通信
linux·linux驱动·嵌入式软件开发·嵌入式操作系统·linux应用
网安老伯4 小时前
都2026年了,还在问网络安全怎么入门?看完这一篇你就懂了
运维·计算机网络·web安全·网络安全·wireshark·密码学·网络攻击模型
小祺先生5 小时前
mt7921 debian系统 如何安装驱动
运维·网络·debian
笨笨饿5 小时前
#138_解决Codex要五次回复的问题
linux·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式实时数据库