网站建设属于什么太原西北建设有限公司网站
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:43
当前位置: 首页 > news >正文
网站建设属于什么,太原西北建设有限公司网站,来宾住房和城乡建设局网站,市场调研报告范文3000字哈喽#xff0c;大家好~我是保护小周ღ#xff0c;本期为大家带来的是 Java 多线程的 线程的状态#xff0c;New 新建状态#xff0c;Runnable 运行状态#xff0c;Blocked 阻塞状态#xff0c;waiting 等待状态#xff0c;Time_Waiting 超时等待状态#xff0c;Termin…哈喽大家好~我是保护小周ღ本期为大家带来的是 Java 多线程的 线程的状态New 新建状态Runnable 运行状态Blocked 阻塞状态waiting 等待状态Time_Waiting 超时等待状态Terminated 终止状态以及展示线程的状态的常用方法。更多精彩敬请期待保护小周ღ ★,°:.☆(▽)/\(:*.°★* ‘一、线程的状态表示线程当前所处的一个情况 线程有6 种状态下文会详细讲述New 新建状态线程还没出创建只有Thread 实例化的对象调用start 方法之前的状态。Runnable 运行状态被系统调度后CPU 正在执行的Ready 就绪态系统调度随时准备被CPU 执行。Blocked 阻塞状态线程遇到某种机制之后不参与 CPU的调度执行等待某个条件的触发唤醒线程waiting 等待状态 无限期等待死等Time_Waiting 超时等待状态设置了最大等待时间超出最大等待时间就换醒线程Terminated 终止状态线程生命周期结束后的状态1.1 举例理解关于线程的状态博主举个例子理解一下1. 张三和李四两个线程是邻居他们打算一起去银行办理业务首先他们两个到银行后进行挂号操作new 新建状态随后他们两个人在大厅的排队等待呼叫线程 READY就绪状态。2. “请 102号顾客来 1号窗口办理业务 —— 张三当银行呼叫张三来1 号窗口办理业务我们可以看作是线程的调度1号窗口我们认为是 CPU 的核心处理单元为张三办理业务处理线程张三听到呼叫后马上来到1号柜台柜台小姐姐正式为张三办理业务线程的运行状态。3. 张三话不多说直接银行卡身份证递给小姐姐张口就是我要取5 万块钱小姐姐让张三输入密码此时张老铁将银行卡密码忘记了尝试了几次都不能成功于是就给老婆打电话询问结果显示正在通话中无奈之下只能感到很无奈匆匆下线那么导致业务办理不成功线程堵塞的原因是忘记了密码。4. 因为张三忘记了密码暂时无法获取密码老婆电话通话中无法继续处理业务所以陷入阻塞等待可以联系上老婆询问密码所以银行呼叫了下一个用户请 103号顾客来 1号窗口办理业务 —— 李四此时银行1号窗口可以看作是并行或并发的处理多线程李四来处理业务就是从就绪状态到运行状态李四张口就来我要取 50万柜台小姐姐说很抱歉暂时无法为您办理业务根据规定大额取款需要提前三天预约这边只能为您办理预约业务您三天后可以来取此时李四线程陷入了等待状态但是具有时效性线程需要等3天就可以继续执行了三天后李四的业务就可以继续处理。5. 这边处理李四业务的时候张三老铁终于拨通了电话询得了密码那么张三老铁又可以此时忽略挂号重新排队张三获得密码就从阻塞状态中唤醒来到就绪状态准备被CPU 调度处理请 104号顾客来 1号窗口办理业务 —— 张三伴随着银行的呼叫张三再次被调度根据询问的密码输入密码时提示成功张老铁欣喜若狂结果柜台小姐姐告知银行存款不足无法取出相应的5万元金额无法办理取钱业务需要等待银行余额充裕后方可继续进行取钱所以张三再次陷入等待状线程等待。6. 当银行继续处理几个存钱业务后金额足够线程等待结束条件再呼叫张三来排队取钱将张三从等待状态中唤醒张三就继续排队就绪银行窗口办理业务运行取钱成功线程结束。1.2 阻塞、等待状态的同异等待、阻塞可以看作不参加 CPU 的调度了系统也不会安排该状态的线程被CPU 执行两者的区别是进入等待状态是线程主动的而进入阻塞状态是被动的。阻塞等待线程阻塞指一个线程在执行过程中暂停等待某个条件的触发。一般会发生在线程加锁的情况下synchronized例如两个线程同时对一片内存空间的数据进行增删查改线程之间又是随机调度很容易造成数据的误差问题此时我们需要对该事务进行加锁操作synchronized什么意思多线程之间并发执行对事物加锁后当一个线程对事物进行处理的时候不允许其他线程对该事物进行操作那么竞争事物的这个线程就会进行阻塞等待直到先运行的线程对事物执行完毕。运行的线程执行wait()方法JVMjava虚拟机会把该线程放入等待池中。wait() 方法释放当前对象锁然后使该线程进入等待状态“死等”带参数的版本可以指定最大等待时间不带参数的wait() 方法 需要其他线程使用notify() 方法来唤醒调用 wait() 方法的线程当然 wait() 方法是建立在有锁对象的情况下synchronized。等到线程安全的章节博主再详细介绍同步阻塞运行的线程在获取对象的同步锁时若该同步锁被别的线程占用则JVM会把该线程放入锁池中举个例子两个线程同时处理一个“事务”势必会造成数据的安全问题。线程等待线程等待运行的线程执行sleep()或join()方法或者发出了I/O请求时JVM会把该线程置为阻塞状态。当sleep() 线程休眠需要执行休眠时间join() 方法线程等待例如 main 线程 调用 t.join 方法意思就是 mian 线程需要等待 t 线程执行完毕后再执行自己“死等”线程串行执行join() 提供了一个带参数的版本可以指定最大等待时间线程等待一般发生在主动的使线程进入等待状态。BLOCKED 表示等待获取锁, WAITING 和 TIMED_WAITING 表示等待其他线程发来通知.TIMED_WAITING 线程在等待唤醒但设置了时限; WAITING 线程在无限等待唤醒二、展示线程的常用方法2.1 Thread.getState() 方法显示线程的状态public static void main(String[] args) throws InterruptedException {Thread t new Thread( () - {while (true) {try {Thread.sleep(1500);} catch (InterruptedException e) {e.printStackTrace();}synchronized (Thread.currentThread()) {System.out.println(线程 T执行);try {Thread.currentThread().wait(); // 返回当前线程引用} catch (InterruptedException e) {e.printStackTrace();}}}});t.start(); //启动System.out.println(t.getState()); // 此时是主线程在判断 t 线程的状态二者并无影响 Runnablet.sleep(1000); //t 线程休眠一秒 Time_WaitingSystem.out.println(t.getState());t.sleep(1000); //等待 t 线程调用 wait() 方法进入死等状态System.out.println(t.getState());}2.2 isAlive 方法判定线程的存活状态isAlive() 方法可以认为是处于不是 NEW 和 TERMINATED 的状态都是活着的2.3 yield() 主动结束CPU 调度执行让出 CPU的执行时间片 yield 不改变线程的状态, 但是会让调用的线程由运行状态重新进入就绪排队状态二者都是属于运行状态只不过是CPU 并发执行线程有人正在执行就有人准备被执行。 public static void main(String[] args) throws InterruptedException {Thread t new Thread( () - {int i 0;while (true) {i;System.out.print(t 线程执行);if((i 1 )% 10 0) {System.out.println();}Thread.currentThread().yield(); //让出CPU 执行时间片}});t.start(); //启动int i 0;while (true) {System.out.print(main 线程执行);i;if((i 1 )% 10 0) {System.out.println();}}}由此可见本来是两个线程并发执行但是由于 t 线程调用 yiele方法后主动让出 CPU 的时间片所以多数情况下是 main 线程在执行。至此Java 线程的状态博主已经分享完了希望对大家有所帮助如有不妥之处欢迎批评指正。本期收录于博主的专栏——JavaEE适用于编程初学者感兴趣的朋友们可以订阅查看其它“JavaEE基础知识”。下期预告线程安全相关问题感谢每一个观看本篇文章的朋友更多精彩敬请期待保护小周ღ *★,°*:.☆(▽)/\):.°★ ‘
- 上一篇: 网站建设属于软件开发吗网络零售的优势有哪些
- 下一篇: 网站建设属于移动互联网手机网站推广怎么做
相关文章
-
网站建设属于软件开发吗网络零售的优势有哪些
网站建设属于软件开发吗网络零售的优势有哪些
- 技术栈
- 2026年03月21日
-
网站建设属于哪一类商标网站建设新技术
网站建设属于哪一类商标网站建设新技术
- 技术栈
- 2026年03月21日
-
网站建设书籍在线阅读广州网站建设交易
网站建设书籍在线阅读广州网站建设交易
- 技术栈
- 2026年03月21日
-
网站建设属于移动互联网手机网站推广怎么做
网站建设属于移动互联网手机网站推广怎么做
- 技术栈
- 2026年03月21日
-
网站建设术语 英文软件技术和软件工程一样吗
网站建设术语 英文软件技术和软件工程一样吗
- 技术栈
- 2026年03月21日
-
网站建设数据库ER图怎么画php源码
- 技术栈
- 2026年03月21日
