首页 > 其他分享 >线程状态

线程状态

时间:2023-06-16 09:55:23浏览次数:21  
标签:状态 阻塞 线程 sleep 就绪 礼让

  • 创建
  • 就绪
  • 阻塞
  • 运行
  • 死亡

线程停止

  • 不推荐使用stop()、destroy()等JDK废弃的方法

  • 推荐让线程自己停下来,使用一个标志进行终止变量,flag = false

线程休眠

  • 每个对象都有一把锁,sleep不会释放锁

  • sleep可以模拟网络延时(放大问题的发生性),倒计时等

  • sleep指定当前线程阻塞的毫秒数,到时间后线程进入就绪状态

  • sleep存在异常InteredException

线程礼让yield

  • 让进去的线程转为就绪状态,两个线程重新竞争

  • 礼让不一定成功

合并线程join

想象成VIP插队,待此线程执行完后再执行其他线程,其他线程阻塞

标签:状态,阻塞,线程,sleep,就绪,礼让
From: https://www.cnblogs.com/hmzblogs/p/17484841.html

相关文章

  • Spring框架中的线程池
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址Spring框架中的线程池使用Java的ExecutorService接口实现ExecutorService是Java提供的用于管理线程池的高级工具。下面是在Spring框架中使用线程池的一般步骤:导入所需的依赖首先,确保你的项目中包含了使用线程池所需......
  • c++多线程 std::async std::future
    c++标准库中对线程操作有完善的封装,其中最常用到的如std::thread,std::async。EffectiveModernCpp中指出,应尽量使用std::async即基于任务的编程而非基于线程的编程。std::thread在前面的文章有提到过,此处仅对std::async作以记录。正如前面所说,std::async是基于任务的策略,本人理......
  • Java并发(十)----线程之守护线程
    默认情况下,Java进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。例:log.debug("开始运行...");Threadt1=newThread(()->{  log.debug("开始运行...");  sleep(2......
  • Java并发(十一)----线程五种状态与六种状态
    1、五种状态这是从操作系统层面来描述的【初始状态】仅是在语言层面创建了线程对象,还未与操作系统线程关联【可运行状态】(就绪状态)指该线程已经被创建(与操作系统线程关联),可以由CPU调度执行【运行状态】指获取了CPU时间片运行中的状态当CPU时间片用完,会从【......
  • Java 多线程同步问题的探究(三、Lock来了,大家都让开【1. 认识重入锁】)
    在上一节中,我们已经了解了Java多线程编程中常用的关键字synchronized,以及与之相关的对象锁机制。这一节中,让我们一起来认识JDK5中新引入的并发框架中的锁机制。我想很多购买了《Java程序员面试宝典》之类图书的朋友一定对下面这个面试题感到非常熟悉:问:请对比synchronized......
  • 观察者模式:发送状态变化通知
    观察者模式是一种行为设计模式,它允许对象在发生特定事件时通知其他对象。这些被通知的对象被称为观察者,而通知它们的对象称为主题或可观察对象。该模式使用了松散耦合的原则,因此主题和观察者之间没有太多的依赖关系。示例代码:importjava.util.ArrayList;importjava.util.Li......
  • C#线程同步的几种方法
    在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳。一、volatile关键字volatile是最简单的一种同步方法,当然简单是要付出代价的。它只能在变量一级做同步,volatile的含义就是告诉处理器,不要将我放入工作内存,请直接在主存操作我。因此......
  • 多线程
    概念程序:一段静态的代码进程:运行中的程序进程作为资源分配的单位线程:进程进一步细化为线程,是一个程序内部的一条执行路径实现方式继承thread创建一个继承Thread的子类子类中重写父类的run()方法创建子类的对象通过子类对象.start()启动线程实现runable接口创建......
  • 控制并发流程,做好线程间的协调
    一、概述1.什么是控制并发流程?线程一般是由线程调度器自动控制的,但有些场景需要按照我们程序员的意愿去实现多线程之间相互配合,从而满足业务逻辑。比如:让线程A等待线程B执行完后再执行等一些相互合作的逻辑;或一系列线程等待一个线程运行完毕或发出信号之后再执行2.控制并......
  • Java 多线程同步问题的探究(二、给我一把锁,我能创造一个规矩)
    在上一篇中,我们讲到了多线程是如何处理共享资源的,以及保证他们对资源进行互斥访问所依赖的重要机制:对象锁。本篇中,我们来看一看传统的同步实现方式以及这背后的原理。很多人都知道,在Java多线程编程中,有一个重要的关键字,synchronized。但是很多人看到这个东西会感到困惑:“都说同......