摘要: main函数开启一个新线程,在内存中的过程 上述代码,在内存中的状态如下图所示。执行步骤主要是下面四步。 1、运行上述java文件,由虚拟机执行类的入口main函数,分配了一个主线程。 2、main方法在主线程所在栈中,压栈,实例一个新的子线程,并开启了这个子线程 3、jvm给子线程分配了一块子线程 阅读全文
posted @ 2017-11-20 23:51 panda521 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的。在以下情况下,持有锁的线程会释放锁: 1. 执行完同步代码块。 2. 在执行同步代码块的过程中,遇到异常而导致线程终止。 3. 在执行同步代码块的过程中,执行了锁所属对象的wait()方法 阅读全文
posted @ 2017-11-20 23:44 panda521 阅读(2241) 评论(0) 推荐(1) 编辑
摘要: 转自:http://ifeve.com/think-in-java-monitor/ 如果你在大学学习过操作系统,你可能还记得监听器在操作系统中是很重要的概念。同样监听器在java同步机制中也有使用,本文通过类比的方法来解释“监听器”的基本思想。 什么是监听器? 监听器可以看成是包含了一间特殊房间的 阅读全文
posted @ 2017-11-20 23:28 panda521 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: 为了更高效的处理一些时间片短,任务量大的任务,我们可能会经常用到多线程。但是多线程的环境下,很容易出现线程并发问题,线程死锁就是很常见的一种并发问题。为了避免此类问题,我们会用到线程间的通信,而等待唤醒机制,就是线程间通信的一种形式。 等待唤醒机制用到的方法主要有: public final voi 阅读全文
posted @ 2017-11-20 22:02 panda521 阅读(2478) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/webdeve/p/7865520.html本文摘要: 输入网址 输入网址 当我们在浏览器输入网址并回车后,一切从这里开始。 一、DNS域名解析 我们在浏览器输入网址,其实就是要向服务器请求我们想要的页面内容,所有浏览器首先要确认的是域名所对应的服 阅读全文
posted @ 2017-11-20 13:18 panda521 阅读(1110) 评论(0) 推荐(1) 编辑