ThreadLocal

1.什么是ThreadLocal

ThreadLocal一般称为线程本地变量,是一个特殊的线程绑定机制,将线程和变量绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内,而不会和其他线程的副本冲突。

2.ThreadLocal是如何做到为每一个线程维护一个变量副本的呢?

在ThreadLocal类中定义一个ThreadLocalMap,每一个Thread中都有一个该类型的变量----threadlocals----用于存储每一个线程的变量副本。可以通过看源码会了解的更清楚。

3.为什么使用ThreadLocal?

编写一个多线程安全的程序,使线程共享资源,共享资源需要进行同步(synchronized),同步会带来一些问题,如:会造成延时,影响性能;在线程同步时,要处理好对象的锁定与释放,避免产生死锁。
既然共享资源那么困难,那么干脆不要共享,直接为每个线程创建一个资源的副本。将每一个线程存取数据的行为加以隔离,实现的方法就是给予每个线程一个特定的空间来保管该线程所独享的资源。而ThreadLocal可以做到这一点。

4、ThreadLocal的用法,主要用到四个方法。

ThreadLocal tLocal = new ThreadLocal();
tLocal.get() =>获取ThreadLocal中当前线程共享变量的值。
tLocal.set() =>设置ThreadLocal中当前线程共享变量的值。
tLocal.remove()=>移除ThreadLocal中当前线程共享变量的值。
tLocal.initialValue()==>ThreadLocal没有被当前线程赋值或调用remove方法后调用get方法,则返回此方法值。

5.实现

在这里插入图片描述

在这里插入图片描述

输出结果为:线程A: 0
线程A: 1
线程A: 2
线程A: 3
使用ThreadLocal的remove方法后, 在调用get方法,返回当前线程变量的值是: null
线程A: 0

也就是说把一个线程放入ThreadLocal后只要还在是本线程的话可以在任意时候调用都可以获得这个对象,避免了一些繁琐的传参操作,也让需要传数据更加的安全。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值