Java精通并发-从Thread与Runnable说起
java并发的学习从去年就已经中断了,之前只对于java并发的一些基础进行了一些巩固,对于这个硬技能不管是对于面试还是对于日常的实际开发来说都非常之重要,所以接下来给自己重新定一个新目标,准备重拾它一步一个脚印从易到难彻底的将Java并发所涉及的方方面面进行一个深入的学习,向着“精通”的程度来努力,当然要想达到此目标肯定得把自己扒一层皮,不可能这么轻松的,所以贵在坚持!
Thread:
"万丈高楼平地起",为了达到“精通”的目标,肯定还得从基础一点点开始,虽说是比较枯燥,但是这是让自己持续向着这个目标不断迈进的必经之路,另外可能有些概念早已经知道了,但是为了系统还是得从头开始一点点学习,因为这次的目标就是奔着精通去的,所以,对于Java并发来说肯定就涉及到线程的东东,而谈到Java线程肯定就会想到Thread类,所以就从它的了解开启系统的学习,而为了更加精准的来了解它,直接对它官方的javadoc进行了解,这样是最直接最权威的,所以咱们先来打开它的源码,这里是以"jdk1.8.0_92"为准进行解读的,如下:

然后打开该类的文档窗口:








接下来再来大致了解一下它的成员:


接下来就是几个重载的构造方法:

其中示例中我们看到会有一个带Runnable接口的构造方法,大致瞅一下它的实现:

接着看一下init()方法:

继续再看其它方法:

该方法是很重要的,所以也来读一下它的说明:

接下来再来看一下它的run()方法:

由于也很重要,所以,也来通读一下它的说明:

其中target则就是Runnable对象,如下:

Runnable:
对于Thread类它是实现了Runnable这个接口的,如下:

所以接下来再来读一下Runnable的官方文档说明:





好,接下来读一下它的run()方法的说明:


Java精通并发-从Thread与Runnable说起的更多相关文章
- Java 使用线程方式Thread和Runnable,以及Thread与Runnable的区别
一. java中实现线程的方式有Thread和Runnable Thread: public class Thread1 extends Thread{ @Override public void r ...
- Java多线程之Thread、Runnable、Callable及线程池
一.多线程 线程是指进程中的一个执行流程,一个进程中可以有多个线程.如java.exe进程中可以运行很多线程.进程是运行中的程序,是内存等资源的集合,线程是属于某个进程的,进程中的多个线程共享进程中的 ...
- Java精通并发-死锁检测与相关工具详解
关于死锁其实在之前https://www.cnblogs.com/webor2006/p/10659938.html的jvm学习中已经详细举过例子了,不过这里再来复习一下,另外是从并发这个专题领域的角 ...
- Java精通并发-wait与sleep方法字节码分析
在上一次https://www.cnblogs.com/webor2006/p/11372521.html中对于Thread类和Runnable接口有了一个基本的认识,这次咱们继续巩固基础,首先先新建 ...
- java面试题之Thread和Runnable是什么关系?
Thread实现了Runnable接口,使得run方法支持多线程: 因类的单一继承原则,推荐多实用Runnable接口
- Java精通并发-锁升级与偏向锁深入解析
对于synchronized关键字,我们在实际使用时可能经常听说用它是一个非常重的操作,其实这个“重”是要针对JDK的版本来说的,如今JDK已经到了12版本了,其实对这个关键字一直是存在偏见的,它底层 ...
- Java精通并发-Condition详解及相比于传统线程并发模式的改进
在上一次https://www.cnblogs.com/webor2006/p/11792954.html对于Lock的具体实现类ReentrantLock用了一个示例对它进行了一个简单的了解,而它其 ...
- Java精通并发-Lock与synchronized关键字在底层的区别及实例分析
在上两次中已经将Lock这个接口的整个官方说明进行了阅读,这次来了解一下它的一个非常重要的实现类: 啥叫“可重入”呢?其实是指一个线程已经拿到了锁,然后该线程还能再次获取这把锁,接下来在了解它之前先用 ...
- Java精通并发-锁粗化与锁消除技术实例演示与分析
在上一次https://www.cnblogs.com/webor2006/p/11446473.html中对锁的升级进行了一个比较详细的理论化的学习,先回忆一下: 编译器对于锁的优化措施: 锁消除技 ...
随机推荐
- [LeetCode] 243. Shortest Word Distance 最短单词距离
Given a list of words and two words word1 and word2, return the shortest distance between these two ...
- 应用程序正常初始化(0xc0000135)失败。请单击“确定”,终止应用程序。
应用程序正常初始化(0xc0000135)失败.请单击“确定”,终止应用程序. 没有安装对应版本的.NET FRAMEWORK.
- Kubernetes 基于 RBAC 的授权(十六)
目录 一.RBAC介绍 1.1.角色和集群角色 1.2.RoleBinding 和 ClusterRoleBinding 1.3.资源 1.4.主体 二.命令行工具 2.1.kubectl creat ...
- 使用Nginx+WordPress搭建个人网站
背景 很多研究技术的朋友喜欢写博客.如果希望搭建一个完全属于自己的网站,也并不困难.这里简要分享一下我搭建这个博客网站的经验. 关键步骤 购买服务器.域名.DNS云解析服务 网站备案(可选) 安装Ng ...
- 配置tomcat 加载指定的jar
# vi bin/catalina.sh
- 15 SpringMVC的入门案例
1.入门程序的需求 2.搭建开发环境 <1>Create New Project <2>创建一个webapps <3>设置maven路径和解决maven项目创建过慢 ...
- redhat7.6Linux安装Oracle19C完整版教程
首先安装配置虚拟机,见博客https://www.cnblogs.com/xuzhaoyang/p/11264563.html 然后配置IP地址,见博客https://www.cnblogs.com/ ...
- (五)linux 学习 --重定向
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap07.html 文章目录 标准输入.输出.错误 ...
- Dubbo快速入门 四
4.业务场景 4.1).提出需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我们现在 需要创建两个服务模块进行测试 模块 功能 订单服务web模块 创建订单等 用户服务servi ...
- consul安装配置,生产环境部署高可用环境
1.建立三个consul节点(一个server+两个client) 具体的过程见http://www.cnblogs.com/java-zhao/p/5375132.html 1)在终端下启动vagr ...