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

最新的跨境电商平台有哪些重庆高端网站seo

最新的跨境电商平台有哪些,重庆高端网站seo,免费网站建设作业总结,南京量身营销型网站设计一、ThreadLocal简介 多线程访问同一个共享变量时特别容易出现并发问题#xff0c;特别是在多个线程需要对一个共享变量进行写入时。为了保证线程安全#xff0c;一般使用者在访问共享变量时需要进行适当的同步 同步一般是通过加锁来实现的,但这对用户有一定要求,加重了使用…一、ThreadLocal简介 多线程访问同一个共享变量时特别容易出现并发问题特别是在多个线程需要对一个共享变量进行写入时。为了保证线程安全一般使用者在访问共享变量时需要进行适当的同步 同步一般是通过加锁来实现的,但这对用户有一定要求,加重了使用者的负担.使用ThredLocal就可以做到,创建一个变量后,每个线程对其访问的时候访问的是自己创建的变量. 如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会拥有一个这个变量的副本.操作的时候也是操作的属于自己这个线程的变量,从而避免了线程安全问题. 二、ThreadLocal使用示例 package ThreadLocalTest;public class ThreadLocalTest {static void print(String str) {//1.1 打印当前线程本地内存中localVariable变量的值System.out.println(str : localVariable.get());//清除当前线程本地内存中的localVariable的值//localVariable.remove();}// 创建ThreadLocal变量static ThreadLocalString localVariable new ThreadLocalString();// 创建线程onepublic static void main(String[] args) {Thread threadOne new Thread(new Runnable() {Overridepublic void run() { // 设置线程One中本地变量loalVariable的值localVariable.set(threadOne local variable); // 调用打印函数print(threadOne); // 打印本地变量值System.out.println(threadOne remove after : localVariable.get());}}); // 创建线程twoThread threadTwo new Thread(new Runnable() {Overridepublic void run() { // 设置线程Two中本地变量loalVariable的值localVariable.set(threadTwo local variable); // 调用打印函数print(threadTwo); // 打印本地变量值System.out.println(threadTwo remove after : localVariable.get());}}); // 启动线程threadOne.start();threadTwo.start();} }运行结果如下 threadOne:threadOne local variable threadOne remove after:threadOne local variable threadTwo:threadTwo local variable threadTwo remove after:threadTwo local variable线程One中的代码3.1通过set方法设置了localVariable的值这其实设置的是线程One本地内存中的一个副本这个副本线程Two是访问不了的。然后代码3.2调用了print函数代码1.1通过get函数获取了当前线程线程One本地内存中localVariable的值。 线程Two的执行类似于线程One。 将localVariable.remove 这一句代码的注释删除 static void print(String str) {//1.1 打印当前线程本地内存中localVariable变量的值System.out.println(str : localVariable.get());//清除当前线程本地内存中的localVariable的值//localVariable.remove();}运行结果如下所示: threadOne:threadOne local variable threadOne remove after:null threadTwo:threadTwo local variable threadTwo remove after:null三、ThreadLocal实现原理 首先看一下ThreadLocal相关类的类图结构 由该图可知Thread类中有一个threadLocals和一个inheritableThreadLocals它们都是ThreadLocalMap类型的变量.而ThreadLocalMap是一个定制化的Hashmap。在默认情况下每个线程中的这两个变量都为null只有当前线程第一次调用ThreadLocal的set或者get方法时才会创建它们。其实每个线程的本地变量不是存放在ThreadLocal实例里面而是存放在调用线程的threadLocals变量里面。 也就是说ThreadLocal类型的本地变量存放在具体的线程内存空间中。ThreadLocal就是一个工具壳它通过set方法把value值放入调用线程的threadLocals里面并存放起来当调用线程调用它的get方法时再从当前线程的threadLocals变量里面将其拿出来使用。 如果调用线程一直不终止那么这个本地变量会一直存放在调用线程的threadLocals变量里面所以当不需要使用本地变量时可以通过调用ThreadLocal变量的remove方法从当前线程的threadLocals里面删除该本地变量。另外Thread里面的threadLocals为何被设计为map结构很明显是因为每个线程可以关联多个ThreadLocal变量。
http://www.yutouwan.com/news/456830/

相关文章:

  • 中济建设有限公司网站酒店建设网站的优势有哪些
  • 做响应式网站代码wordpress redis自动
  • 专业的深圳网站建设公司排名网站备案麻烦吗
  • 建筑设计人才招聘网站重庆网站建设重庆网站设计
  • 如何建设网站pdf下载苏州网站建设空间
  • 邯郸建设网站公司微信小商城怎么开通
  • 免费网站代码中山平面设计公司
  • 重庆宣传片2023南昌官网seo
  • 怎么搜索到自己网站网站内容规划
  • 做外贸产品上什么网站同一ip大量访问网站
  • 永城城乡建设局网站房地产网站建设方案书
  • 想买个服务器做网站网站建设四个阶段
  • 南京电信网站备案深圳4a广告公司有哪些
  • wordpress谷歌网站地图网页设计开发培训
  • ai生成图片在线制作WordPress博客程序优化
  • 松江建设网站关闭wordpress多站点
  • 高性能网站建设指南看广告赚钱一天50元
  • 单位网站建设制作南京网站开发选南京乐识赞
  • dw简易网站怎么做网页设计与制作大全
  • 母婴网站的功能设计网站的重要目录对百度进行了封禁
  • 国外网页模板网站起名字2023免费八字起名
  • 建设工程教育网建设工程类的考试辅导网站广州做网站 信科便宜
  • 东营人力资源招聘信息网seo研究中心怎么了
  • 做外贸网站如果是东西杂会不会不好推广一个做网站的公司年收入
  • 强生公司网站wordpress 代码 加密
  • 品牌宣传网站有哪些重庆网站建设狐灵
  • 商务网站建设与维护 ppt工商网企业信息查询系统上海
  • 专业网站seo优化公司WordPress在手机能更新
  • 有域名了怎么建站北京做网站比较大的公司
  • 定制建设网站大公司网站搭建公司