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

医院网站建设原理北京国企设计院排名

医院网站建设原理,北京国企设计院排名,wordpress 申请表单,上海网站建设找摩彼一、ThreadLocal 1、介绍 可以实现资源对象的线程隔离;可以实现了线程内的资源共享 如果使用 ThreadLocal 管理变量,则每一个使用该变量的线程都获得该变量的副本, 副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本…

一、ThreadLocal

1、介绍

可以实现资源对象的线程隔离;可以实现了线程内的资源共享

如果使用 ThreadLocal 管理变量,则每一个使用该变量的线程都获得该变量的副本, 副本之间相互独立,这样每一个线程都可以随意修改自己的变量副本,而不会对其他线程产生影响

2、常用方法

  • ThreadLocal() : 创建一个线程本地变量
  • get() : 返回此线程局部变量的当前线程副本中的值
  • initialValue() : 返回此线程局部变量的当前线程的"初始值"
  • set(T value) : 将此线程局部变量的当前线程副本中的值设置为 value

3、编程

例子:四个线程卖10张票

是分别卖10张票

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;public class ThreadTest {public static void main(String[] args) {synchronizeThread st = new synchronizeThread();new Thread(st, "1").start();new Thread(st, "2").start();new Thread(st, "3").start();new Thread(st, "4").start();}
}class synchronizeThread implements Runnable {ThreadLocal<Integer> ticketNumber = new ThreadLocal<Integer>() {//创建实例对象@Overrideprotected Integer initialValue() {return 10;//初始值}};@Overridepublic void run() {for (int i = 0; i < 100; i++) {if (ticketNumber.get() > 0) {//get得到值System.out.println("线程【" + Thread.currentThread().getName() + "】卖出了一张票,现在剩余了【" + ticketNumber.get() + "】张票");ticketNumber.set(ticketNumber.get() - 1);//set修改值} else {break;}}}
}

4、原理

原理是为每个线程创建变量副本,不同线程之间不可见,保证线程安全。每个线程内部都维护了一个 ThreadLocalMap,key 为 threadLocal 实例,value 为要保存的副本

使用 ThreadLocal 会存在内存泄露问题,因为 key 为弱引用,而 value 为强引用,每次 GC 时 key 都会回收,而 value 不会被回收,所以一般使用 static 修饰 ThreadLocal,可以随时获取 value。为了解决内存泄漏问题,可以在每次使用完后删除 value

二、ThreadLocal 与其他同步机制

  • ThreadLocal 与同步机制都是为了解决多线程中相同变量的访问冲突问题
  • ThreadLocal 并不能代替同步机制,两者面向的问题领域不同。同步机制是为了同步多个线程对相同资源的并发访问,是多个线程之间进行通信,并且协同的有效方式;而 ThreadLocal 是为了隔离多个线程的数据共享,从而避免多个线程之间对共享资源的竞争,也就不需要对多个线程进行同步了。ThreadLocal 采用以"空间换时间"的方法,其他同步机制采用以"时间换空间"的方式
  • ThreadLocal 适用的场景是,多个线程都需要使用一个变量,但这个变量的值不需要在各个线程间共享,各个线程都只使用自己的这个变量的值。这样的场景下,可以使用 ThreadLocal
http://www.yayakq.cn/news/33434/

相关文章:

  • 襄阳行业网站建设网站建设加推广话术
  • php网站开发流程步骤网页版游戏排行榜枪
  • 和各大网站做视频的工作自己做的网站网页打开速度慢
  • 怎么样做网站推广杭州比较好的景观设计公司
  • 中国电信 网站备案淘宝 客要推广网站怎么做
  • 黄江镇网站建设公司软件培训内容怎么写
  • 龙华城市建设局网站一级造价工程师考试科目
  • 建设网站公司网站能自己做的ppt网站
  • 建立什么网站赚钱程序员培训班课程
  • 网站建设好后能修改吗网站开发实例模板
  • 网站职业技能培训班公司邮箱怎么进入
  • 类似凡科互动的网站晋城网站建设电话
  • 网站分站代理加盟做外包的网站有哪些问题
  • 做旅游网站图片哪里找对网站开发的理解
  • 衡水做网站建设公司基于jquery做的网站
  • 广州设计网站公司软件开发项目名称
  • 南皮做网站价格网站科技感颜色
  • 小米路由2 做网站工程造价信息网官网登录
  • 多就能自己做网站注册中文域名
  • 中国建设银行江西分行网站首页温州网络投诉平台
  • 网站说服力营销型网站策划 pdf微信网站什么做的
  • 上海网站建设联系电平面设计类的网站
  • app产品网站模板免费下载网站跳转如何做
  • 怎么做一网站营销网站建设818gx
  • 企业首次建设网站的策划方案创建站点的步骤
  • 手机旅游视频网站模板网站建设学什么语言
  • 哈尔滨哪里有做网站的物流公司做网站
  • 较成功营销网站的例子wordpress商店页面
  • 深圳网站专业建设公司门户网站建设创新
  • 软件网站怎么做的网站长春网站建设