2021-08-06

Qt开发中彻底解决中文乱码问题 中文乱码问题主要源于编码不一致需要同时设置控制台和Qt应用程序的编码确保项目文件和环境配置的编码一致文件操作时注意指定正确的编码。 阅读详情

主线程和分线程的创建和死亡分析

1.简介线程的生命周期

在这里插入图片描述

2.问题引出

class MyThread implements Runnable{
    static int i;
    @Override
    public void run() {
       i++;
       System.out.println("分线程中的i:"+MyThread.i);
    }
}

public class testThread {
    public static void main(String[] args) {
        MyThread mt = new MyThread();
        Thread t1 = new Thread(mt);
        t1.start();
        System.out.println("主线程中的i:"+MyThread.i);
    }
}

结果:
在这里插入图片描述
由上面的结果可以看出分线程中的i发生了变化,主线程中打印的是分线程的Runnable实现类中的i,没有发生变化,还是原来的值。但是在main()函数中是先运行的t1.start(),再执行的打印语句。结果应该打印出的i=1,这是什么原因呢?

3、 原因分析并解决

在mian()函数中,主线程先执行,主线程将i值打印出来,此时的分线程还没有执行,所以打印出的i=0。当主线程执行结束死亡后分线程才开始执行。所以出现上述问题。此时引入join()方法解决此问题。
t.join()方法只会使主线程(或者说调用t.join()的线程)进入等待池并等待t线程执行完毕后才会被唤醒。并不影响同一时刻处在运行状态的其他线程。所以引入join()方法后,会暂停主线程,运行分线程,当分线程运行完后再返回主线程运行,就能够使i=1。

 public static void main(String[] args) {
        MyThread mt = new MyThread();
        Thread t1 = new Thread(mt);
        t1.start();
        try {
            t1.join();  //引入join()
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("主线程中的i:"+MyThread.i);
    }

在这里插入图片描述

华为OD机考 新系统真题 【区分奇偶的数组排序】 华为OD机试 新系统真题【区分奇偶的数组排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【区分奇偶的数组排序】多语言题解。 阅读详情

相关推荐

PSINS惯性系初始对准与代码解读

本文参考“摇摆基座上基于信息的捷联惯导粗对准研究”(秦永元),以及“严恭敏博士后研究报告”,详细解读并推导了静基座惯性系对准算法,并与PSINS代码进行对照解读。

u011012050的博客 6752

后台返回的时间是‘2021-06-24T16:59:54.253299+08:00’这个格式的处理方法

后台返回的时间是‘2021-06-24T16:59:54.253299+08:00’这个格式的处理方法 直接上我写的一个函数转换方法 export function formatDate(v, isUTC = true, dateFormat = 'YYYY-MM-DD HH:mm:ss'){ if (v) { return isUTC ? moment.utc(v) .local() .format(dateFormat) : moment.utc(v) .

qq_40287084的博客 4461

我用 AI 做了个开源地图工具:从 OpenStreetMap 一键获取全国 AOI/POI 数据

本文介绍了一款免费开源的OSM数据查询与可视化工具,旨在解决Overpass QL语法晦涩、数据获取门槛高的问题。工具支持面数据(AOI)、点数据(POI)及路网三种查询模式,内置30+常用模板实现一键检索。具备高德与OSM双底图切换、坐标自动转换功能,支持GeoJSON、SHP、CSV多格式导出,同时保留自定义查询能力。作为纯HTML单文件应用,可零成本部署至GitHub Pages在线使用。该工具有效降低了地理数据获取难度,是替代商业地图API、高效提取全球开源地理信息的实用利器。

weixin_45812624的博客 585

C#日期格式转换2021-06-03T00:30:00+08:00

2021-06-03T00:30:00+08:00 转化为

Hero_rong的博客 2426

VirtualBox创建虚拟机(为安装Ubuntu桌面系统)

Ubuntu的安装非常灵活。但是万变不离其宗,归纳起来,无非就是以下3种:(1)用户可以下载完整的ISO镜像文件,将其转移到各种介质上面,例如DVD或者U盘,然后以该介质引导系统进行安装。(2)用户可以下载一个非常小的网络安装器,利用该安装器引导系统进行在线安装。(3)用户可以将Ubuntu安装到一个U盘中,随身携带。为了便于读者学习,本节将介绍通过完整的ISO镜像文件安装Ubuntu。其他的安装方式将在后面介绍。

夏天又到了的专栏 2687

PCIe 6.0 – 关于 PCI Express Gen6 您需要知道的一切

幸运的是,PCIe 6.0 FEC 足够轻,对延迟的影响最小。在电气层上,PCIe 6.0 使用 PAM4 信号(“四级脉冲幅度调制”),每个时钟周期将 2 位组合为 4 个幅度级别(00、01、10、11),与 PCIe 5.0 和前几代相比,它使用 NRZ 调制,每个时钟周期 1 位和两个幅度级别 (0, 1)。虽然 PAM4 信号更容易出错,但由于调制技术的性质,与 PCIe 5.0 相比,通道损耗不受影响,因此 PCB 上 PCIe 6.0 信号的范围将与 PCIe 5.0 相同。

qq_43416206的博客 3431

2021-06-08

Java面向对象设计(面向对象进阶-1) 面向对象进阶 在java中,变量分为成员变量和局部变量,成员变量是在类范围内定义的变量,局部变量是在方法中定义的变量。 成员变量的使用 成员变量在使用之前,需要先进行声明,声明成员变量是在类的内部,方法在外部定义的变量,成员变量分为实例变量和类变量。实例变量作用域是当前所属实例的范围,类的成员变量的作用域是整个范围。 成员变量的语法 [<修饰符>][static][final]<变量类型><变量名> 示例如下 public cl

LQL20020515的博客 215

7.12真题华为OD机试真题 新系统 - 字符串压缩编码 (Java/Py/C/C++/Js/Go)

7.12真题华为OD机试真题 新系统 - 字符串压缩编码 (Java/Py/C/C++/Js/Go)

算法大师! 835

处理时间类型格式为(2021-08-06T12:00:0000Z)使用注解接收@JsonDateFormat

使用这个格式会完美解决这个问题 @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",timezone="GMT8")

weixin_44503925的博客 7534

SAP BSIS:总账未清项表(Open Items)总账未清项 包含哪些业务 请给以举例说明

SAP总账未清项是指需要未来核销的会计行项目,仅适用于勾选"未清项管理"的总账科目。典型业务场景包括:供应商预付款(借方未清项)、员工备用金(借方未清项)、客户预收款(贷方未清项)和保险理赔(借方未清项)。系统通过表BSIS/BSAS跟踪未清项,支持明细追踪和账实核对。核心价值在于提供总账级别的明细管理能力,确保往来款项完整清账,简化对账流程,满足特殊业务管理需求。可通过FBL3N事务码查询和管理所有总账未清项。

金牌架构师 723

喷涂机器人系列编程:ABB IRB 5500_(7).喷涂质量控制与优化

通过编程手段对ABB IRB 5500喷涂机器人进行质量控制和优化,可以显著提高喷涂的均匀性和附着力,减少涂层缺陷。具体的方法包括喷涂参数的调整、路径规划的优化、喷涂效果的检测与反馈,以及喷涂参数的动态调整。综合评估系统可以进一步确保喷涂质量的稳定性和一致性,帮助汽车制造企业提高产品质量和生产效率。

zhubeibei168的博客 851
上一篇: 2021-08-05
下一篇: 2021-08-20
菜鸟程序猿666
博客等级 码龄8年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值