《java多线程编程实战指南 核心篇》读书笔记一
1. run方法是线程的任务处理逻辑的入口方法,它由java虚拟机在运行相应线程时直接调用,而不是由应用代码进行调用。
2. 启动一个线程的实质是请求java虚拟机运行相应的线程,而这个线程具体何时能够运行是由线程调度器(Scheduler)(线程调度器是操作系统的一部分)决定的。
3. 在java平台中,一个线程是一个对象,对象的创建离不开内存空间的分配. 创建一个线程与创建其他类型的java对象所不同的是,java虚拟机会为每个线程分配调用栈(call stack)所需的内存空间。调用栈用于跟踪java代码(方法)间的调用关系以及java代码对本地代码(Native Code, 通常是C代码)的调用。
4. java平台中的任意一段代码(比如一个方法)总是由确定的线程负责执行的,这个线程就相应地被称为这段代码的执行线程。
5. 多个线程实例可以共享同一个Runnable实例,这时候就会出现线程安全问题。
6. 线程的层次关系: java平台中,线程不是孤立存在的,线程与线程之间总是存在一些联系。假如A线程所执行的代码创建了线程B,那么习惯上称线程B为线程A的子线程,相应的线程A就被称为线程B的父线程。
Thread.java源码中的枚举类State
public enum State {/*** Thread state for a thread which has not yet started.*/NEW,/*** Thread state for a runnable thread. A thread in the runnable* state is executing in the Java virtual machine but it may* be waiting for other resources from the operating system* such as processor.*/RUNNABLE,/*** Thread state for a thread blocked waiting for a monitor lock.* A thread in the blocked state is waiting for a monitor lock* to enter a synchronized block/method or* reenter a synchronized block/method after calling* {@link Object#wait() Object.wait}.*/BLOCKED,/*** Thread state for a waiting thread.* A thread is in the waiting state due to calling one of the* following methods:* <ul>* <li>{@link Object#wait() Object.wait} with no timeout</li>* <li>{@link #join() Thread.join} with no timeout</li>* <li>{@link LockSupport#park() LockSupport.park}</li>* </ul>** <p>A thread in the waiting state is waiting for another thread to* perform a particular action.** For example, a thread that has called <tt>Object.wait()</tt>* on an object is waiting for another thread to call* <tt>Object.notify()</tt> or <tt>Object.notifyAll()</tt> on* that object. A thread that has called <tt>Thread.join()</tt>* is waiting for a specified thread to terminate.*/WAITING,/*** Thread state for a waiting thread with a specified waiting time.* A thread is in the timed waiting state due to calling one of* the following methods with a specified positive waiting time:* <ul>* <li>{@link #sleep Thread.sleep}</li>* <li>{@link Object#wait(long) Object.wait} with timeout</li>* <li>{@link #join(long) Thread.join} with timeout</li>* <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li>* <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li>* </ul>*/TIMED_WAITING,/*** Thread state for a terminated thread.* The thread has completed execution.*/TERMINATED;}
7. 多线程编程的实质就是将任务的处理方式由串行改为并发,即实现并发化,以发挥并发的优势。
《java多线程编程实战指南 核心篇》读书笔记一相关推荐
- 卓有成效的程序员 阅读笔记 第一部分
第一部分 机制 第二章 加速法则 加载器(Launcher)允许你输入应用程序或文档名称的第一部分来加载它:一个应用程序列表的有用程度与它的长度成反比 花点时间来学习你手边所有隐藏的快捷键 命令提示符 ...
- ThoughtWorks(中国)程序员读书雷达
软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南捷径,但阅读好的技术书籍 ...
- 张逸:ThoughtWorks(中国)程序员读书雷达
2013/06/20 · 书籍与教程, 开发· 6.6K 阅读· 书籍, 架构设计, 编程, 领导力 原文出处: 简单文本-张逸 欢迎分享原创到伯乐头条 软件业的特点是变化.若要提高软件开发的 ...
- 张逸: ThoughtWorks(中国)程序员读书雷达
原文出处: 简单文本-张逸 软件业的特点是变化.若要提高软件开发的技能,就必须跟上技术发展的步伐.埋首醉心于项目开发与实战,固然能够锤炼自己的开发技巧,却难免受限于经验与学识.世界上并不存在速成的终南 ...
- 程序员的共鸣 - 读《卓有成效的程序员》
最近读了<卓有成效的程序员>,感觉收获颇大.这是一本写给程序员的难得的好书.书中大都是一些浅显的道理,但作者将这些东西加以收集.归纳.总结,并最终成书.作者为了收集各种提高效率的工具和方法 ...
- 读《卓有成效的程序员》-----我的一些题内和题外的感想
读<卓有成效的程序员>-----我的一些题内和题外的感想 本文出自:http://hi.baidu.com/xiaonan33309/blog/item/c708c901a50d940b7 ...
- 卓有成效的程序员(影印版)
卓有成效的程序员(影印版) 一本揭示高效程序员的思考模式,一本告诉你如何缩短你与优秀程序员的差距 定价 : ¥42.00会员价 : ¥31.50(75折) 详情查看:http://www.china- ...
- [黑马程序员C++笔记]P72-P83通讯录管理系统
目录 系统需求 1.菜单功能 2.退出功能 3.添加联系人 (1)设计联系人结构体 (2) 设计通讯录结构体 (3)main函数中创建通讯录 (4)封装添加联系人函数 (5 ...
- [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览
系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...
- php末尾友链,与php程序员的笔记网站交换友链的原则
很抱歉,由于本网站首页友链已满,目前停止交换首页友链,内页仍可交换友链!(2013年2月24日) 随着本站友链的数量不断增多,本人不得不对本站的友链申请的原则进行郑重的申明一下,希望各位申请本站友链的 ...
最新文章
- SpringBoot+Mybatis+Swagger2环境搭建
- matlab 灰色预测(有点离谱)
- IE-OLD IE 提示
- 斗地主(深搜+贪心+剪枝)
- android按钮点击无响应时间,AndroidStudio下的点击事件不响应
- 【Java】统计字符串中每个字符出现的次数
- 虎牙李萌:网络视听内容的工业化生产正在提速
- ubuntu 安装 swift 64位
- ip 地址 192.168.1.255 代表( )。_如何批量ping大量ip地址?一个软件搞定
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)
- 老男孩linux高级架构 百度云盘下载
- 全民 Transformer (二): Transformer在深度学习和NLP中如何发挥作用
- 百度初级认证考试知识点
- python ocr文字识别竖排繁体_古籍族谱繁体竖排中文识别图文攻略-千百OCR
- 解决开启TCP/IP筛选,使用Serv-u 需要开放的端口
- 语义分割常用指标详解(附代码)
- 大地测量的基准面和基准线
- kali linux手机版下载免root,不需要root在安卓完全安装metasploit
- unity本地分数排行榜简单解决方案(Json)
- PLC单个自复位按钮控制指示灯的6种方法,总有一种适合你,学到就是赚到。