public class Student {
private int age=0;
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
}
public class TreadLocalDemo implements Runnable {
private final static ThreadLocal studentLocal = new ThreadLocal();
public static void main(String[] agrs) {
TreadLocalDemo td = new TreadLocalDemo();
Thread t1 = new Thread(td,"a");
Thread t2 = new Thread(td,"b");
t1.start();
t2.start();
}
public void run() {
accessStudent();
}
public void accessStudent() {
String currentThreadName = Thread.currentThread().getName();
System.out.println(currentThreadName+" is running!");
Random random = new Random();
int age = random.nextInt(100);
System.out.println("thread "+currentThreadName +" set age to:"+age);
Student student = getStudent();
student.setAge(age);
System.out.println("thread "+currentThreadName+" first read age is:"+student.getAge());
try {
Thread.sleep(5000);
}
catch(InterruptedException ex) {
ex.printStackTrace();
}
System.out.println("thread "+currentThreadName +" second read age is:"+student.getAge());
}
protected Student getStudent() {
Student student = (Student)studentLocal.get();
if(student == null) {
student = new Student();
studentLocal.set(student);
}
return student;
}
protected void setStudent(Student student) {
studentLocal.set(student);
}
}
ThreadLocal
public class ThreadLocal
{
private Map values = Collections.synchronizedMap(new HashMap());
public Object get()
{
Thread curThread = Thread.currentThread();
Object o = values.get(curThread);
if (o == null && !values.containsKey(curThread))
{
o = initialValue();
values.put(curThread, o);
}
return o;
}
public void set(Object newValue)
{
values.put(Thread.currentThread(), newValue);
}
public Object initialValue()
{
return null;
}
}
分享到:
相关推荐
OK即使您不用加锁synchronized,利用ThreadLoacl进行安全变量的副本,但是维持变量副本的资源也是需要消耗资源的。而且对于一个重量级的对象的多个方法多个线程同时调用此对象的同一个局部变量,多个副本的维护实际...
理解ThreadLocal的关键在于认识到它是线程局部的,每个线程都有自己的独立副本,而不是所有线程共享一个全局变量。这使得ThreadLocal成为在多线程环境下维护线程安全状态的一种有效手段,尤其在处理如Handler、...
leetcode下载 OnlineEditor 基于SpringBoot的线上java编程网站 网站地址: 涉及技术:SpringBoot框架、Java动态编译、...ThreadLoacl 实现线程封闭,为每个请求创建一个输出流存储标准输出及标准错误结果。 未来规划:
期末大作业基于python的足球运动员数据分析源码+数据集(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于pyth
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
基于C#开发的航迹规划,可以实现三角形、四边形、五边形航迹的规划+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于C#开发的航迹规划,可以实现三角形、四边形、五边形航迹的规划+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于C#开发的航迹规划,可以实现三角形、四边形、五边形航迹的规划+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于C#开发的航迹规划,可以实现三角形、四边形、五边形航迹的规划+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于C#开发的航迹规划,可以实现三角形、四边形、五边形航迹的规划+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于C#开发的航迹规划,可以实现三角形、四边形、五边形航迹的规划+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用
内容概要:本文详细介绍了为满足电子洁净厂房对温湿度高精度控制的需求而开发的一套串级PID自控系统及其露点焓值计算方法。文中首先阐述了传统单回路PID控制无法应对电子厂房特有的温湿度耦合特性的局限性,随后展示了采用主环焓差控制、副环温湿度PID控制的串级PID架构的具体实现方式。通过自定义双向PID调节算法,根据不同工况调整比例积分系数,有效提高了系统的响应速度和稳定性。此外,还提供了精确的露点计算函数,确保湿度控制精度达到±5%,并分享了调试过程中遇到的问题及解决方案。最终测试结果显示,该系统能够将温度波动控制在±1℃范围内,湿度控制精度优于预期。 适合人群:从事工业自动化控制领域的工程师和技术人员,尤其是关注电子洁净厂房环境控制系统优化的专业人士。 使用场景及目标:适用于需要对温湿度进行精准控制的电子洁净厂房建设或改造项目,旨在提高生产环境稳定性和产品质量。 其他说明:文中提到的关键技术和算法均已在实际工程项目中得到验证,具有较高的实用价值。
内容概要:本文详细介绍了无人艇WAM-V采用非线性模型预测控制(NMPC)进行路径规划与动态避障的具体实现方法。首先阐述了无人艇及其应用场景,接着深入讲解了NMPC的基本原理,重点在于如何通过NMPC设置合理的约束条件来确保无人艇与障碍物保持安全距离,从而实现有效的避障。文中还提供了详细的MATLAB和Casadi求解器的应用实例,包括代码解析,帮助读者理解整个过程。最后,作者对未来研究方向进行了展望,强调将继续优化NMPC算法,提升无人艇在复杂环境中的自主导航能力。 适合人群:对无人艇技术感兴趣的科研人员、工程师以及相关专业的学生。 使用场景及目标:适用于希望深入了解无人艇动态避障机制的人群,尤其是那些想要掌握NMPC理论及其实际应用的读者。通过学习本篇文章,可以为后续开展类似课题的研究打下坚实的基础。 其他说明:文中提供的代码示例有助于读者快速上手实践,但需要注意的是,完整理解和运行这些代码的前提是要先安装好MATLAB和Casadi求解器。
内容概要:本文介绍了利用Comsol和CST两款仿真软件构建狄拉克半金属BDS(宽带隙半导体)超材料的模型方法及其Matlab脚本的应用。文中详细解释了这两种材料的独特物理性质,如优异的电学、光学或热学性能,并探讨了它们在电子设备研发中的潜在价值。同时,还提供了编写相关仿真脚本所需的背景知识和技术要点,包括电磁学、量子力学等领域的内容。 适合人群:从事材料科学研究的专业人士,尤其是关注新型电磁材料及其仿真的研究人员。 使用场景及目标:适用于希望通过理论计算与数值模拟深入研究狄拉克半金属BDS超材料特性的科研工作者;旨在提高对这类先进材料的理解,促进其在未来电子产品中的实际应用。 其他说明:文中提到可以提供基础的CST模型供初学者练习使用,但具体的模型选择需依据个人项目的特定需求而定。
CTF网络安全技术相关资源
CTF网络安全技术相关资源
内容概要:本文详细介绍了汇川H5U转盘机程序框架及其5U模板案例,涵盖上下料功能、CCD模拟功能,支持多达20个工位的扩展。框架内置了通用伺服运动FB块,最多可支持32轴的运动控制。此外,文中还包括了对HIM(威纶通)功能块的讲解,帮助开发者理解和使用程序逻辑。通过该框架,即使是新手也能轻松上手并构建复杂的大型程序。 适合人群:适合新手程序员以及需要整理和优化现有程序框架的专业人士。 使用场景及目标:① 快速搭建自动化生产线,提高生产效率和质量;② 学习和掌握汇川H5U转盘机程序框架的核心功能和技术细节;③ 构建更复杂的大型程序,适应不同设备和场景的需求。 其他说明:该框架不仅提供了简洁明了的编程接口,还具备高度的灵活性和可扩展性,非常适合用于工业自动化领域的项目开发。
内容概要:本文详细介绍了增材制造技术及其仿真方法,重点讲解了利用ANSYS Workbench进行电弧增材制造焊接的温度场和应力场仿真。文章从增材制造的基本概念出发,逐步介绍仿真工具的选择、建模步骤、材料属性定义、网格划分、仿真参数设置、双椭球移动热源配置、求解与结果分析,最后比较了单道单层和多道多层仿真的不同特点。通过具体案例展示了仿真技术在优化制造过程中的重要作用。 适合人群:从事增材制造领域的工程师和技术人员,尤其是希望深入了解ANSYS Workbench仿真工具的使用者。 使用场景及目标:帮助读者掌握增材制造仿真技术的具体操作流程,提高对温度场和应力场的理解,优化制造工艺,提升产品质量。 其他说明:文中还简要介绍了APDL命令流的应用,进一步提升了仿真的灵活性和准确性。
内容概要:本文详细介绍了FPGA在远程网口TCP升级中的应用及其对未来网络发展的影响。首先,文章阐述了远程网口升级的背景和发展趋势,特别是大数据、云计算等新兴领域对网络通信速度和稳定性的要求。接着,文章深入探讨了FPGA在远程网口升级中的应用场景和技术特点,如高并行处理能力、可定制化和灵活性高等。最后,文章展望了未来网络的发展趋势,强调了FPGA在智能化、绿色化、网络化等方面的潜在作用,并提供了基于TCP协议的FPGA远程网口升级方案示例代码。 适合人群:从事网络通信、FPGA开发的技术人员,以及对网络技术和芯片技术感兴趣的科研人员。 使用场景及目标:适用于需要提升网络通信性能的企业和个人开发者,旨在帮助他们理解和掌握FPGA在远程网口升级中的应用方法,从而提高数据传输效率和网络稳定性。 其他说明:文章不仅讨论了当前的技术现状,还对未来网络发展趋势进行了预测,为相关领域的研究和开发提供了有价值的参考。
基于python开发的航迹规划系统软件+源码+项目文档+UI界面,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 航迹规划系统软件 1代码说明 该系统源代码分为算法和系统设计两部分。以下将对两部分进行分别介绍。 1.1航迹规划算法 该毕设采用的是基于深度强化学习的无人机航迹规划算法。数据集存储在Qlocal.pth和Qtarget.pth两个文件中,env.py是对环境进行三维构建与模拟,利用立方体描述建筑环境。UAV.py是对无人机的状态参数进行初始化包括坐标、方向、环境等。Replay.buffer.py中存储经验回放记忆数据。DQN神经网络模型的训练参数设置以及训练是在DQN.py中进行的。然后将以上文件全部导入DQN神经网络模型,该模型的训练参数设置以及训练是在DQN.py中进行的。最后在watch_env.py中将训练好的DQN模型放入仿真模拟环境中进行测试。 1.2系统设计 将航迹规划算法的各个文件导入test.py中,系统设计是在test.py中完成的。首先主窗口界面通过Ui_Form类中完成设计;环境配置功能在子函数function1中完成;无人机配置在子函数function4中完成;任务点配置在子函数function2中完成;航迹规划在子函数function3中完成。将四个子功能函数分别绑定在对应的主界面的功能按钮上。最后通过mian.py启动该系统界面。 2使用说明 运行该系统需要安装3.9.13版本的python,4.7.0版本的OpenCV,以及1.13.1版本的PyTorch,并在编译软件(如pycharm)中导入文件中引入的包和模块,然后编译mian.py文件启动该系统。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文介绍了自定义形状电击穿路径的仿真模拟方法及其在电子工程和材料科学领域的应用。首先,通过电场理论建立了仿真模型,允许自定义模型的形状和尺寸,以适应不同实验条件的需求。其次,利用有限元法(FEM)和COMSOL多物理场相场法,将模型划分为多个有限元并求解电场分布,实现了击穿路径的精确描述。再者,借助COMSOL的PDE模块自定义偏微分方程,进一步提高了模拟精度。最后,通过求解偏微分方程并利用COMSOL的强大可视化功能,展示了电击穿路径的详细过程和路径。 适合人群:从事电子工程、材料科学研究的专业人士和技术人员,尤其是那些需要深入了解电击穿过程的研究人员。 使用场景及目标:适用于需要模拟和分析电击穿路径的研究项目,旨在帮助研究人员更好地理解电击穿过程的物理机制,优化材料性能,并改进实验方案。 其他说明:文中提到的方法不仅可以用于学术研究,还能够应用于工业生产中的材料测试和设备设计,为相关领域的技术创新提供了重要工具。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;