thread.sleep是让哪个线程休眠_JAVA多线程看这一篇就足够了(超详细总结)

本文全面介绍JAVA多线程,包括进程与线程概念、线程调度、Thread类、创建线程的方式、线程优先级、线程生命周期和同步代码块,帮助理解多线程编程的基础知识。重点解析了thread.sleep方法让哪个线程休眠,以及线程的创建、控制和同步策略。
摘要由CSDN通过智能技术生成

前言

多线程编程,是 “多核时代” 提升计算性能的关键因素之一,亦属于开发者必须掌握的核心技能。本片文章小编带你从六个知识点剖析JAVA多线程,将针对于 Java 多线程编程,进行基础的阐述!

主要内容包括:

一、概述
二、Thread 类
三、创建线程:继承 Thread 类
四、创建线程:实现 Runnable 接口
五、线程优先级
六、线程的生命周期
七、同步代码块

一、概述

1. 进程和线程

  • 进程:进程指正在运行的程序。
  • 线程:线程是进程中的一个执行单元,是程序 使用cpu 的基本单位(调度)。负责当前进程中程序的执行。是进程中单个顺序控制流(执行路径),是一条单独执行的路径
  • 一个程序运行后至少有一个进程,一个进程中可以包含多个线程
  • 在操作系统中,进程是资源分配的基本单位,线程是调度的基本单位。
在没有出现线程之前, 进程既是操作系统进行资源分配的基本单位,又是调度的基本单位
  • 单线程程序:若有多个任务只能依次执行。当上一个任务执行结束后,下一个任务开始执行。程序只有一条执行路径
  • 多线程程序:若有多个任务可以同时执行。程序有多条执行路径
操作系统发展:单道批处理操作——>多道批处理操作系统——>分时操作系统(多进程的)——>线程 批处理:程序在执行过程中,不会响应用户的请求 单道批处理操作:一次只能运行一个程序,如果要在计算机运行多个程序,这多个程序,只能一个一个的顺序执行,如果这个正在运行的程序,在运行过程中,执行了一些非常耗时的IO操作(传输数据的过程是没有使用到cpu),这样一来,cpu就闲下来了,但是cpu是计算机中,最为昂贵的 多道批处理操作系统:同时运行多个程序,显著的提高了cpu的利用率,但是我们一旦一个,程序运行起来,都是是需要使用计算机资源的 分时操作系统:每一个进程,有一个固定的时间片,在运行一个固定的时间片后,紧接着轮到下一个进程运行(切换)
  • 为什么还会有线程呢? 进程切换的代价太高了,这样一来,每一次进程切换,都需要付出不小的额外的代价,为了减小进程切换的代价,引入了线程,提高CPU的利用率

2. 线程调度

  • 分时调度:所有线程 轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。
  • 抢占式调度:优先让 优先级高的 线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度
  • 体现了:程序运行的不确定性
  1. CPU 使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而 CPU的在多个线程间切换速度相对我们的感觉要快,看上去就是在同一时刻运行。
  2. 多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的使用率更高。

3. 线程控制

  • 线程睡眠 static void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)
    //让主线程,休眠3秒 Thread.sleep(3000); //sleep新的写法 TimeUnit.SECONDS.sleep(3); System.out.println("睡醒了");
  • 线程加入 public final void join():(让当前线程)等待该线程(新加入的线程终止)终止。
    SecondThread sec = new SecondThread("zs"); SecondThread thr = new SecondThread("lsii"); SecondThread fou = new SecondThread("wangwu");
    //启动这三个线程对象 sec.start(); //sec线程上调用join方法 ,让当前线程(main)等待sec线程执行完毕 sec.join(); thr.start(); fou.start();
  • 线程礼让public static void yield():暂
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值