在学习这个InheritableThreadLocal类的时候,我对于有个地方一直没有理解,我发现了盲点。

 1   private void init(ThreadGroup g, Runnable target, String name,
2 long stackSize, AccessControlContext acc,
3 boolean inheritThreadLocals) {
4 //..........
5 Thread parent = currentThread();
6 //..........
7 if (inheritThreadLocals && parent.inheritableThreadLocals != null)
8 this.inheritableThreadLocals =
9 ThreadLocal.createInheritedMap(parent.inheritableThreadLocals);
10 /* Stash the specified stack size in case the VM cares */
11 this.stackSize = stackSize;
12
13 /* Set thread ID */
14 tid = nextThreadID();
15 }

在这个地方,我的思想出现了问题,对于这个currentThread得到了当前线程,这里没有问题,然后设置this.inheritableThreadLocals=

ThreadLocal.createInheritedMap(parent.inheritableThreadLocals);

我的问题来了。。。为什么这个this可以代表子线程,当前线程不是父线程吗?我对于这个问题感觉深深的不解,

我思考了良久,得出了一个结论,我TM真是个sb,啊啊啊啊啊啊为什么会把这个this当作子线程呢,这明明是个对象啊

,代表子对象的引用啊,线程和对象不是一个东西啊。。。。。我给自己整吐了。。

好了。。吐槽结束了,希望大家不要放跟我一样的错误

对于this和当前线程的一些理解的更多相关文章

  1. Java并发编程与技术内幕:线程池深入理解

    摘要: 本文主要讲了Java当中的线程池的使用方法.注意事项及其实现源码实现原理,并辅以实例加以说明,对加深Java线程池的理解有很大的帮助. 首先,讲讲什么是线程池?照笔者的简单理解,其实就是一组线 ...

  2. Java中线程同步的理解 - 其实应该叫做Java线程排队

    Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可 ...

  3. java中线程同步的理解(非常通俗易懂)

    转载至:https://blog.csdn.net/u012179540/article/details/40685207 Java中线程同步的理解 我们可以在计算机上运行各种计算机软件程序.每一个运 ...

  4. 【Java面试】简述一下你对线程池的理解?

    到底是什么面试题, 让一个工作了4年的精神小伙,只是去参加了一场技术面试, 就被搞得精神萎靡.郁郁寡欢! 这一切的背后到底是道德的沦丧,还是人性的扭曲. 让我们一起揭秘一下这道面试题. 关于, &qu ...

  5. 一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 21.对线程安全的理解 22.Thread和Runnable的区别 23.说说你对守护线程的理解 24.ThreadLoc ...

  6. 线程和线程池的理解与java简单例子

    1.线程 (1)理解,线程是系统分配处理器时间资源的基本单元也是系统调用的基本单位,简单理解就是一个或多个线程组成了一个进程,进程就像爸爸,线程就像儿子,有时候爸爸一个人干不了活就生了几个儿子干活,会 ...

  7. java线程池初步理解

    多线程基础准备 进程:程序的执行过程,持有资源和线程 线程:是系统中最小的执行单元,同一个进程可以有多个线程,线程共享进程资源 线程交互(同步synchronized):包括互斥和协作,互斥通过对象锁 ...

  8. Linux下线程池的理解与简单实现

    首先,线程池是什么?顾名思义,就是把一堆开辟好的线程放在一个池子里统一管理,就是一个线程池. 其次,为什么要用线程池,难道来一个请求给它申请一个线程,请求处理完了释放线程不行么?也行,但是如果创建线程 ...

  9. android中对线程池的理解与使用

    前段时间有幸接到腾讯上海分公司的 Android开发面试,虽然最后一轮被毙了.但还是得总结一下自己在android开发中的一些盲点,最让我尴尬的是面试官问我几个android中线程池的使用与理解..哎 ...

  10. 对于Android的线程和线程池的理解

    Android的消息机制,主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue 和 Looper的支撑,MessageQueue中文名消息队列,它的内部存储了一组消 ...

随机推荐

  1. 文献管理软件 Zotero 安装、配置与使用

    简介 Zotero优缺点 使用Zotero作为主力文献管理工具的原因: 软件本身完全免费并且开源,不存在盗版问题 注册后本身只包括 300M 空间同步,但支持 WebDAV 同步,例如 Dropbox ...

  2. oracle数据库中索引失效的几种情况

    原文1:https://blog.csdn.net/u012255097/article/details/102792683 原文2:https://www.cnblogs.com/lanseyita ...

  3. mysql一些使用函数(不断更新)

    1.中文转拼音码,多用于将姓名转成拼音(例如:刘德华:liudehua) /*建立拼音码表*/ CREATE TABLE IF NOT EXISTS `t_base_pinyin` ( `pin_yi ...

  4. Redis学习笔记(六)——数据结构之Set

    一.介绍 Redis的Set是string类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis中集合是通过哈希表实现的,所以添加.删除.查找的复杂度都是O(1). 集合中 ...

  5. EXPECT交互式批量上传公钥

    EXPECT交互式批量上传公钥 # vim key.sh #/bin/bash Public_Key() { [ ! -f /usr/bin/expect ] && yum insta ...

  6. ZooKeeper CentOS7上安装

    下载http://www.apache.org/dyn/closer.cgi/zookeeper(我下的是zookeeper-3.4.14) 1.创建 /usr/local/services/zook ...

  7. LWJGL3的内存管理,第二篇,栈上分配

    LWJGL3的内存管理,第二篇,栈上分配 简介 为了讨论LWJGL在内存分配方面的设计,本文将作为该系列随笔中的第二篇,用来讨论在栈上进行内存分配的策略,该策略在 LWJGL3 中体现为以 Memor ...

  8. 【QT】 QThread部分源码浅析

    本文章挑出QThread源码中部分重点代码来说明QThread启动到结束的过程是怎么调度的.其次因为到了Qt4.4版本,Qt的多线程就有所变化,所以本章会以Qt4.0.1和Qt5.6.2版本的源码来进 ...

  9. Python3网络学习案例二:traceroute详解

    1. 写在前面 本文是基于上一篇"ping详解"写的: 不同操作系统下的命令也不同,本文仅针对windows系统,命令为"tracert xxx",效果如下 2 ...

  10. 848.Shifting Letters——weekly contest 87

    848. Shifting Letters 题目链接:https://leetcode.com/problems/shifting-letters/description/ 思路:O(N^2)复杂度过 ...