`
xy_z487
  • 浏览: 277873 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TreadLocal 跟老同学的聊天记录

阅读更多

<!--StartFragment -->

交谈中请勿轻信汇款、中奖信息,勿轻易拨打陌生电话。

 [一球成名!]  21:42:49
         
    面的效果不好啊        
[一球成名!]  21:43:00
         
    有点遗憾
吴万里  21:43:01
         
    为什么? 技术 还是 英语?
吴万里  21:43:06
         
    英语?
[一球成名!]  21:43:09
         
    技术
吴万里  21:43:13
         
    什么技术?
[一球成名!]  21:43:51
         
    主要问我有没有去了解开源
[一球成名!]  21:44:18
         
    问框架的设计
吴万里  21:44:36
         
    你怎么说的?
[一球成名!]  21:45:10
         
    我只知道单例模式,他问框架里一个核心类为什么设计成单利的
[一球成名!]  21:45:14
         
    我说不知道
吴万里  21:45:30
         
    ??
吴万里  21:45:33
         
    单利?
[一球成名!]  21:45:42
         
    反正跟多线成有关
吴万里  21:45:48
         
    考 
[一球成名!]  21:45:50
         
    单例
吴万里  21:45:58
         
    原因 不就一个么
吴万里  21:46:04
         
    系统不能重入阿
[一球成名!]  21:46:12
         
    什么?
[一球成名!]  21:46:21
         
    不能重入是什么意思?
吴万里  21:46:23
         
    核心数据不能多线程共同访问
吴万里  21:46:48
         
    核心数据如果 有多个线程访问 
吴万里  21:47:03
         
    就需要先解决数据同步问题阿
吴万里  21:47:12
         
    一般 这个是最主要的
[一球成名!]  21:47:36
         
    我觉得这样解释不够充分
[一球成名!]  21:47:44
         
    哦
[一球成名!]  21:47:57
         
    他问的是theadlocal
[一球成名!]  21:47:59
         
    这个
吴万里  21:48:09
         
    这个是什么没见过
[一球成名!]  21:48:23
         
    ThreadLocal
[一球成名!]  21:48:29
         
    java的
[一球成名!]  21:48:56
         
    这个东西很不错,可我没仔细去研究
吴万里  21:49:03
         
    TheadLocal包含了一组get(),set(Object)方法,可以获得当前线程的放进去的对象。

    ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 
    另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,这个对象的创建并不是通过ThreadLocal.set()来实现的,set()并不会做什么对象的拷贝,而是每个线程之前已经创建好的对象。通 过ThreadLocal.set()将这个新创建的对象的引用以当前线程为key,保存TheadLocal的一


吴万里  21:49:14
         
    线程池管理 像
[一球成名!]  21:49:42
         
    我反正不太清楚
[一球成名!]  21:50:02
         
    他反正是类似map存数据的
吴万里  21:50:12
         
    恩
吴万里  21:50:33
         
    ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。

[一球成名!]  21:51:21
         
    map的key是线成的id,多线成情况下,同过id获得不同对象操作的那个value,不会冲突的问题吧
[一球成名!]  21:51:27
         
    不太确切
吴万里  21:51:46
         
    有点类似吧
吴万里  21:51:56
         
    我还没找到 这个对象存在的原因
[一球成名!]  21:52:16
         
    但为什么用,什么情况下用我还是不清楚,所以不会用
[一球成名!]  21:52:28
         
    一般工厂类会用道
[一球成名!]  21:52:56
         
    所以,这个东西跟单例扯上关系了
吴万里  21:52:58
         
    ThreadLocal类为于java.lang包中,它是java中一种较为特殊的线程绑定机制,会为每个线程维护一个私有的变量空间。通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM为每个运行的线程绑定了私有的本地实例化存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。实际上,其实现原理是在JVM中维护一个Map,这个Map的key就是当前的线程对象,而value则是线程通过ThreadLocal.set方法保存的对象实例。当线程调用ThreadLocal.get方法时,ThreadLocal会根据当前线程对象的引用,取出Map中对应的对象返回。这样,ThreadLocal通过以各个线程对象的引用作为区分,从而将不同线程的变量隔离开来。
吴万里  21:53:13
         
    这个解释比较确切店
[一球成名!]  21:53:32
         
    恩
[一球成名!]  21:53:48
         
    但是为什么怎么跟单利扯上关系的
吴万里  21:54:11
         
    他原题怎么说的
[一球成名!]  21:54:16

[一球成名!]  21:54:25
         
    似乎我回忆起一点点
[一球成名!]  21:55:24
         
    通常:一个类是多例的,在多线成下,用这个类存数据。

[一球成名!]  21:55:37
         
    1个线成1个对象
[一球成名!]  21:56:00
         
    如果是单利的,多线成下可能造成数据的相互修改
[一球成名!]  21:56:26
         
    所以用threadLocal就解决了这个问题
[一球成名!]  21:57:06
         
    单个实例,但可以保存不同线成私有的数据
吴万里  21:58:22
         
    那他的问题 具体 怎么说的呢
吴万里  21:58:38
         
    就是说 为什么单利的时候为什么用threadlocal ??
[一球成名!]  21:58:52
         
    struts的ActionContext为什么使用ThreadLocal
[一球成名!]  21:59:19
         
    struts2的Action就是单例的
吴万里  21:59:48
         
    哦 
吴万里  21:59:58
         
    还真不喜欢这些东西
[一球成名!]  22:00:48
         
    没看过源代码,不过已经感觉ActionContext使用ThreadLocal来管理Action实例的
[一球成名!]  22:01:06
         
    为什么不喜欢?
吴万里  22:01:51
         
    不为什么
吴万里  22:01:55
         
    就是不喜欢 
吴万里  22:02:07
         
    现在 我也不知道 自己该干什么了
[一球成名!]  22:02:11
         
    我觉得很好
[一球成名!]  22:02:36
         
    越是想法多,越是不知道干什么,哈哈
[一球成名!]  22:03:00
         
    有时候回烦的头疼
[一球成名!]  22:03:36
         
    你小子现在抽烟吗?
吴万里  22:04:41
         
    没钱抽  哈哈
吴万里  22:04:48
         
    不想抽 不喜欢

吴万里  22:05:59
         
    想跳出这个怪圈 
[一球成名!]  22:06:10
         
    呵呵,思考问题不抽烟,不像男人啊,总不能嘴里叼个棒棒糖吧
吴万里  22:06:24
         
    却 感觉  不知道从那里出去
吴万里  22:06:27
         
    出去做什么
[一球成名!]  22:06:37
         
    哎呀,跟你一样
吴万里  22:06:41
         
    不做那种面子工程
[一球成名!]  22:07:12
         
    不容易啊
[一球成名!]  22:07:31
         
    到了这个年龄,考虑好多事情
吴万里  22:07:50
         
    可能吧
吴万里  22:08:03
         
    不过 我也准备 看看 招聘
吴万里  22:08:13
         
    看看能不能找个 项目经理的角色
吴万里  22:08:28
         
    或者 银行、外企的SE角色
[一球成名!]  22:08:48
         
    挺烦的,真的,压力大。 感觉。想要个孩子
[一球成名!]  22:09:00
         
    奇怪吧
吴万里  22:09:10
         
    想有个念想?
吴万里  22:09:22
         
    可以阿 你身边那么多美女 搞定阿
[一球成名!]  22:09:32
         
    不知道呢,神奇的想法
吴万里  22:09:50
         
    wc
[一球成名!]  22:09:58
         
    哈哈
[一球成名!]  22:11:05
         
    兄弟,到什么年龄做什么事,我觉得还是不要违背的好,要有结婚的想法啊
[一球成名!]  22:11:21
         
    不能耽误了
[一球成名!]  22:11:58
         
    2个人后,你的思考会有针对性,目标性吧
我猜的
[一球成名!]  22:13:31
         
    跟你一样我也想项目经理呢,自己可以脱离出来
[一球成名!]  22:13:43
         
    要么工资拿高一点
分享到:
评论

相关推荐

    【Java设计模式】你对单例模式了解多少,一文深入探究

    不让第二步和第三步重排序-DoubleCheck方案二:基于类初始化-静态内部类饿汉式饿汉式与懒汉式最大区别序列化破坏单例模式原理枚举单例基于容器的单例模式基于TreadLocal线程单例源码分析-JDK源码分析-spring其他相关...

    高级java笔试题-ShiftJava:学到头秃的Java的小笔记

    并发:线程基础、JMM、AQS、CAS、锁与线程安全(Synchronized、ReentrantLock)、JUC、线程池、定时任务、TreadLocal 等。 4. Java8/IO/其他 Java8:Lambda、流 Stream 等。 IO:文件操作、IO流、网络操作等(NIO 放...

    yolov10预训练模型.rar

    在按照YOLOv10官网上的步骤进行时,运行app.py文件时,如果没有预训练模型的话会报错。解压压缩包里的内容到同级目录下(在requirements.txt文档下面),这样运行后就不会报错。

    Linux Socket编程、IO模型及进程间通信的完整实用案例

    在IT领域,Linux系统是广泛应用于服务器和嵌入式设备的操作系统。对于系统开发者和管理员,深入理解Linux的Socket编程、IO模型以及进程间通信(IPC)是至关重要的。本资料包提供了三个主要部分的学习资源:`process_comm`涉及进程间通信,`linux_socket`涵盖Socket编程,而`io_mode`则讨论Linux的IO模型。接下来,我们将详细探讨这些关键知识点。 让我们来看看**Linux Socket编程**。Socket是网络通信的基本接口,它允许两个或多个进程通过网络进行数据交换。在Linux中,Socket编程通常涉及到以下步骤:创建Socket,绑定IP地址和端口号,监听连接请求,接受连接,发送和接收数据,最后关闭Socket。`linux_socket`目录可能包含了示例代码,演示如何创建TCP或UDP Socket,处理并发连接,以及实现基本的错误处理机制。理解Socket编程有助于开发网络服务,如Web服务器、FTP服务器等。 我们来讨论**Linux IO模型**。在Linux中,有五种主要的IO模型:阻塞IO、非阻塞IO、IO复用(

    apsw-3.38.5.post1-cp310-cp310-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    aiohttp-3.6.2-cp35-cp35m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    课设毕设基于SpringBoot+Vue的大学生创业项目的信息管理系统源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

    计算机体系结构实验3 多cache一致性算法

    湖大计算机体系结构实验

    arctic-1.67.1-cp27-cp27m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    Toad Data Modeler:Toad中数据字典的创建与管理.docx

    Toad Data Modeler:Toad中数据字典的创建与管理.docx

    #-ssm-048-mysql-在线读书与分享论坛-.zip

    前台: 用户读书笔记,心得查看,并且可以支持调用第三方组建,进行实时聊天 在线图书阅读,一本书里,有多个章节,阅读到某个章节,可以保存阅读进度,比如阅读第一章了,点击提交,可以存储阅读进度,在个人后台查看阅读进度 用户注册 后台: 管理员: 管理员用户管理 注册用户管理 书籍类别管理 书籍信息管理 阅读进度管理 分享阅读心得,笔记管理 系统管理 注册用户: 个人资料修改 分享阅读心得,笔记(下拉表,选择类别) 个人阅读进度查看

    SolarWinds数据库性能分析器:高级功能:SQL分析与优化.docx

    SolarWinds数据库性能分析器:高级功能:SQL分析与优化.docx

    电子商务之价格优化算法:动态定价:价格战与市场动态.docx

    电子商务之价格优化算法:动态定价:价格战与市场动态.docx

    apsw-3.30.1.post1-cp35-cp35m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    VB程序实例-MMControl控件播放多媒体文件.zip

    基于VB的程序实例,可供参考学习使用

    基于java的旅游推荐系统设计与实现答辩PPT.pptx

    基于java的旅游推荐系统设计与实现答辩PPT.pptx

    原版atom-0.10.0-cp311-cp311-win_arm64.whl-下载即用直接pip安装.zip

    安装前的准备 1、安装Python:确保你的计算机上已经安装了Python。你可以在命令行中输入python --version或python3 --version来检查是否已安装以及安装的版本。 个人建议:在anaconda中自建不同python版本的环境,方法如下(其他版本照葫芦画瓢): 比如创建python3.8环境,anaconda命令终端输入:conda create -n py38 python==3.8 2、安装pip:pip是Python的包管理工具,用于安装和管理Python包。你可以通过输入pip --version或pip3 --version来检查pip是否已安装。 安装WHL安装包 1、打开命令行(或打开anaconda命令行终端): 在Windows上,你可以搜索“cmd”或“命令提示符”并打开它。 在macOS或Linux上,你可以打开“终端”。 2、cd到whl文件所在目录安装: 使用cd命令导航到你下载的whl文件所在的文件夹。 终端输入:pip install xxx.whl安装即可(xxx.whl指的是csdn下载解压出来的whl) 3、等待安装完成: 命令行会显示安装进度,并在安装完成后返回提示符。 以上是简单安装介绍,小白也能会,简单好用,从此再也不怕下载安装超时问题。 使用过程遇到问题可以私信,我可以帮你解决! 收起

    astropy-5.0.4-cp38-cp38-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    aggdraw-1.3.14-cp39-cp39-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    VB程序实例-控件随着窗口大小按比例变化.zip

    基于VB的程序实例,可供参考学习使用

Global site tag (gtag.js) - Google Analytics