当前位置: 首页 > news >正文

多线程(三)

等待线程——join()

⭐使用join()方法时,一定要注意放的位置!

     线程不能调用自己的join()。

例子:

        如果我们创建一个线程,使这个线程计算累加的结果,但打印的却用主线程main来执行,如果我们不使用join()方法来控制,那就会随机执行线程,这是多线程的特点,如下:

⭐如果我们不使用join()方法,线程就会随机调度,出来的结果不是我们想要的。

我们要是使用join()方法,情况就会不一样,如下:

这样我们就得到了我们想要的结果。

例子2:

如果我们使用多个线程,就要严格的要求join()方法的位置,这样代码就不会错乱。

我们创建两个线程,来组成一段 "你好,今天是星期三,你今天上学了吗,今天学校放假了" 这样的话。如果我们不使用join()方法,就会如下:

下面将合理的使用join方法:

⭐想要满意的结果,我们就要学会合理的运用join()方法。

获取线程的引用

public static Thread currentThread();    返回当前线程对象的引用

线程的状态——getState()

Java中的线程状态分为下面6点:

1、new                         Thread对象创建好了,但还没有调用 .start() 方法在系统中创建线程。

2、TERMINATED         Thread对象仍然存在,但是内部的线程已经执行完毕了。

3、RUNNABLE             就绪状态,表示这个线程正在cup上执行,或者准备就绪随时可以在c                                               pu上执行。     

4、TIMED_WAITING    指定时间的阻塞,到达一定时间后就会解除阻塞。

                                      (如: 使用sleep和带有超时时间的join也会进入这个状态)      

5、WAITING                 不带时间的阻塞(死等),必须满足一定的条件,才会解除。

                                      (如: join和wait)

6、BLOCKED               由于锁竞争,引起的阻塞。

图关系如下:

代码如下:

⭐线程安全

这里是很重要的知识点,必须要认真学习,多加思考理解。

线程的概念:

        如果多线程环境下代码运行的结果是符合我们预期的,即在单线程环境下也是这样的结果,则说这个程序是线程安全的。

例子:

我们创建两个线程来计算count累加到10_0000的结果,看看是否会符合我们的预期。

单线程下会得到正确的答案:

多线程下就不会得到正确的答案:

因为线程的调度是随机的,我们如果不加限定的条件,线程就可能不安全,很难达到我们预期的结果。

相关文章:

  • Python Pandas实现导出两个Excel数据集的分组记录数分析
  • 封装一个搜索区域 SearchForm.vue组件
  • 【项目】构建高性能多线程内存池:简化版 tcmalloc 实现指南
  • scoped+组件通信+props校验+记事本组件
  • 企业微信PC端 开启调试模式
  • 关于我的服务器
  • Python + 淘宝 API 开发实战:自动化采集商品详情与 SKU 数据清洗指南
  • Qt项目——串口调试助手
  • vite【详解】常用配置 vite.config.js / vite.config.ts
  • 数据库案例2--事务、视图和索引
  • Flowable进阶-网关、事件和服务
  • cout和printf的区别
  • 量子噪声模拟器是验证量子算法的鲁棒性
  • LVGL Animation Image(Animimg)控件详解
  • [特殊字符] 第 2 篇:快速上手 Framer Motion(实操入门)
  • vue学习笔记06
  • NLM格式与温哥华格式的区别与联系是什么?
  • 基于STM32、HAL库的TCA8418RTWR I/O扩展器驱动程序设计
  • 【3D文件】3D打印迪迦奥特曼,3D打印的迪迦圣像,M78遗迹管理局,5款不同的3D打印迪迦免费下载,总有一款适合你
  • vue + element-plus自定义表单验证(修改密码业务)
  • 青岛:今年计划新增城镇住房约5.77万套,推动房地产市场回稳
  • 港澳航天员最早2026年飞天
  • 体坛联播|曼城击败维拉迎英超三连胜,巴萨遭遇魔鬼赛程
  • 税率飙至3500%!美国双反大棒重击东南亚光伏,中企如何应对
  • 重返母校:哈佛大学医学院博士后陈则宇入职北大基础医学院
  • 中国戏剧奖梅花奖终评启动在即,17场演出公益票将发售