JAVAEE---多线程

首先看一些我们将一个任务分成两个线程来执行,时间很明显有了缩短,但是发现答案不一样了,这里的原因就在于,线程安全问题,我们后面再来谈这个话题。两个join是确保两个线程都执行完毕,才会打印。

这里出现了是哪个join方法,第一个叫做死等,就是线程不结束我就一直等。

第二个和第三个都是等待有期限,超过了这个时间我就不等了,两个就是精度存在差异。

线程的状态

就绪状态(包含线程正在执行),阻塞状态。

主要就五个状态

NEW start之前

RUNNING 就绪

TERMINATED run执行完毕

TIMED_WAITING 超时等待,像刚说的带参的join

WAITING 死等

BLOCKED 阻塞 锁竞争

线程安全

线程安全是指某个代码不论单线程还是多线程执行都正确就是线程安全

线程不安全/存在线程安全问题就是指单线程没有问题但多线程存在问题。刚才我们执行的两次结果不同的代码就存在线程安全问题。

原因很简单就是我们,在加的时候是多个指令完成的,所以存在t1取出的l,在他没有返回的时候,t2也取出来了,在放回的时候就存在问题。

线程安全是一个很重要也是很难的问题,我们后面再来详谈

相关推荐
你怎么知道我是队长10 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐10 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
吃茄子的猫10 小时前
quecpython中&的具体含义和使用场景
开发语言·python
云栖梦泽11 小时前
易语言中小微企业Windows桌面端IoT监控与控制
开发语言
数据大魔方11 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
奋进的芋圆12 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin12 小时前
设计模式之桥接模式
java·设计模式·桥接模式
Edward.W12 小时前
Python uv:新一代Python包管理工具,彻底改变开发体验
开发语言·python·uv
小熊officer12 小时前
Python字符串
开发语言·数据库·python
model200512 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端