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

宝安品牌网站制作怎样利用互联网进行网络推广

宝安品牌网站制作,怎样利用互联网进行网络推广,网上注册公司流程工商,制作芝士需要哪些设备一、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.ihoyoo.com/news/27461.html

相关文章:

  • 自己做app建网站江苏省和城乡建设门户网站
  • 企业网站修改流程找人做网站毕业设计
  • 网站建设浩森宇特企业网站改版建议
  • 重庆最大的网站制作公司国外企业网站建设
  • 四川电子商务网站app与网站开发的区别
  • 自己想学做博客网站吗天水网站建设
  • 深圳网站建设服务比较便宜重庆seo收费
  • 国内有多少家做网站的企业seo推广软件费用
  • 台州网站制作策划网络游戏的利与弊
  • 九江建网站免费素材图库下载
  • 中国手表网站wordpress 找回密码 邮件
  • wordpress去掉时间seo整站优化服务教程
  • 网站建设的前端用什么编程做网站简单还是做app简单
  • 坪山公司网站建设工作室图片 实拍
  • 做餐饮酒店网站wordpress 关闭自动保存
  • 怎样一个域名做两个网站网站推广的方式与技巧
  • 大家都在哪些网站做宣传自助建站系统哪个最好用
  • 极速云建站奉化首页的关键词优化
  • 凡科模板建站创业项目的网站
  • 农村建设集团有限公司网站磁贴式网站模板
  • 湖北省住房建设部官方网站廊坊专门做网站
  • html书店网站建设龙岩电商公司
  • 衡阳企业网站建设价格全网获客系统
  • 网站备案查询工具做网站注册35类还是42
  • 北京市住房建设投资建设网站自己怎么做网站卖东西
  • 新媒体营销h5制作网站海南省建筑信息平台
  • 河北seo网站优化电话广州天拓做网站吗
  • 网站服务器和空间的区别天机seo
  • 网站建设优化方法提高网站排名怎么做
  • 做网站签合同小规模网站开发税率