多线程

Windows操作系统是多任务操作系统,它以进程为单位。每个独立执行的程序被称为一个进程,而每个进程又包含多个线程。系统可以分配给每个进程一段使用CPU的时间(CPU时间片),CPU在这段时间中执行某个进程,同理线程也会被分配一小段时间,进行并发执行线程

线程具有生命周期,其中包括五个状态,分别为出生状态,就绪状态,运行状态,暂停状态(休眠/等待/阻塞)和死亡状态

  • 出生状态 被创建时的状态称为出生状态
  • 就绪状态 当线程对象调用starts()方法后进入就绪状态
  • 运行状态 当线程得到系统资源后进入运行状态。 线程一旦进入运行状态,就会在就绪与运行状态下转换,同时也也可能进入暂停或死亡状态。
  • 暂停状态 当在运行状态下调用sleep()方法,wait()方法或者发生阻塞时,就会进入暂停状态。 当在休眠结束,或者调用notify()或notifyAll( )方法,或者阻塞解除时,线程会重新进入就绪状态
  • 死亡状态 当线程的run()方法执行完毕,或者线程发生错误,异常时,线程进入死亡状态

两种方法

线程的休眠 Sleep( )

sleep()方法可以指定线程的休眠时间,线程的休眠时间以毫秒为单位

线程的等待死亡(强行插队)方法join( )

join( )方法,等待线程死亡

线程的礼让Yield()

yield()方法,线程的礼让:1.让当前执行的线程暂停,但不阻塞 2.让cpu重新调度,但不一定礼让成功

Original: https://www.cnblogs.com/wfy-studying/p/16155061.html
Author: ShamUnite
Title: 多线程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570614/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 代码都写不完,还写个锤子注释!

    现在的项目开发里,代码注释就像程序员的头发,越来越少。 尤其是国内,这种现象不仅是在小公司小团队中司空见惯,就算在大公司,以及大团队中的开源项目里,也是屡见不鲜。 上图是我在阿里的…

    Java 2023年6月7日
    086
  • 更多的人力投入真的意味着更快的工作吗?

    ——《人月神话》读后感 如果三个工人需要用十个小时的时间去挖一个坑,那么对于一个相同大小的坑,如果现在有六个工人,我们需要多长时间呢?没错,这个问题实在是简单的不能再简单了——五小…

    Java 2023年6月7日
    068
  • Java实现打印三角形

    Java实现打印三角形 题目要求: 打印如下的5&#x884C…

    Java 2023年6月9日
    076
  • 手把手教你使用 Spring Boot 3 开发上线一个前后端分离的生产级系统(二)-数据库设计

    数据库设计规约 数据库设计遵循以下的阿里开发手册(嵩山版)MySQL 数据库规约: 1. 表达是&#x4E…

    Java 2023年6月8日
    0104
  • 【Linux】Linux常用命令记录

    记录一下平时在Linux服务器常用的命令 1.基础类命令 .. #表示上一&#x5C…

    Java 2023年6月8日
    090
  • 云服务器ECS部署和卸载RabbitMQ

    云服务器ECS部署RabbitMQ RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。本文介…

    Java 2023年6月14日
    061
  • Spring Cloud Netflix超时时间设置

    原文连接:https://www.cnblogs.com/kancy/p/13033021.html 如何配置好 Hystrix 和 Ribbon 的超时时间呢? 其实是有套路的,…

    Java 2023年5月30日
    098
  • SSM整合_年轻人的第一个增删改查_基础环境搭建

    Spring、SpringMVC、MyBatis整合增删改查 写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建SSM整合_年轻人的第一个增删改查_查找SSM整合_年轻人的…

    Java 2023年6月5日
    0145
  • Java StringBuffer 和 StringBuilder 类区别

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。 和 String 类不同的是,StringBuffer 和 StringBuil…

    Java 2023年5月29日
    063
  • 三天学会使用MyBatis框架,绝对干货,只实战,不学究!

    2022最新版Mybatis框架教程来咯!开肝! 快速开启你的 MyBatis之旅! 通过本课程的学习,可以在最短的时间内学会使用持久层框架MyBatis,在该视频中没有废话,都是…

    Java 2023年6月9日
    053
  • 初识 Nginx

    Nginx 是一个免费的,开源的,高性能的HTTP服务器和反向代理,以及IMAP / POP3代理服务器。 Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名…

    Java 2023年5月30日
    084
  • java 8 新特性

    java8 是一个有里程碑的一个版本,提供了很多的新特性,但这些新特性是实打实有用的,而不是一些鸡肋 接口新特性 java8 之前,往接口里新加一个方法,那么所有的实现类都需要变动…

    Java 2023年6月8日
    083
  • Docker实用篇

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月13日
    076
  • springboot2.3.x whitelabel error page 404

    一般资料都提3个问题 controller 位置不对 未添加依赖 注释 我的问题是 properties 要用 thymeleaf-spring5.version Original…

    Java 2023年5月30日
    073
  • postgresql权限

    创建用户 GRANT 命令的基本语法如下: GRANT privilege [,…] ON object[,…] TO { PUBLIC | GROUP group| us…

    Java 2023年6月7日
    094
  • 一篇讲清楚String、StringBuffer和StringBuild

    一、String篇 (jdk文档原文)Strin…

    Java 2023年6月13日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球