- 浏览: 188408 次
- 性别:
- 来自: 杭州
最新评论
-
wahahachuang5:
web实时推送技术使用越来越广泛,但是自己开发又太麻烦了,我觉 ...
转发:websocket 通信协议介绍 -
爱很执着:
好
Java多线程同步机制(synchronized) -
我在路上看风景:
不错啊,看完了,疑惑不存在了。 新浪微博@最美最好的你
Java多线程同步机制(synchronized) -
hbiao68:
写得很好,受教了
Java Resource路径总结二 -
JamesLiuX:
有Freelancer的老鸟吗,求组队!
Freelancer
文章列表
死锁
1、如何确认死锁的发生?
Java虚拟机死锁发生时,从操作系统上观察,虚拟机的CPU占用率为零,很快会从top或prstat的输出中消失。这时可以收集thread
dump,查找"waiting for monitor
entry"的thread,如果大量thread都在等待给同一个地址上锁(因为对于Java,一个对象只有一把锁),这说明很可能死锁发生了。
为了确定问题,笔者建议在隔几分钟后再次收集一次thread
dump,如果得到的输出相同,仍然是大量thread都在等待给同一个地址上锁,那么肯定是死锁了。如何找到当前持有锁的线程是解决问题的 ...
JAVA内存模型
1、什么是内存模型,什么是可见性?
jvm系统中存在一个主内存(Main Memory或Java Heap Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。
每条线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递均需要通过主存完成。
当对象在从工作内存同步到主内存之前,那么它就是不可见的。若有其他线程在存取不可见对象就会引发可见性问题。
2、happens-before原则试图解决什么问题?
共享对 ...
concurrent包
1、Lock和Condition类分别有什么特色,可以取代谁?
Condition
将 Object
监视器方法(wait
、notify
和 notifyAll
)分解成截然不同的对象,以便通过将这些对象与任意 Lock
实现组合使用,为每个对象提供多个等待 set
(wait-set)。其中,Lock
替代了 synchronized
方法和语句的使用,Condition
替代了 Object 监视器方法的使用。
2、如何使用读写锁?
读写锁应用的场合
我们有时会遇到对同一个内存区域如数组或者链表进行多线程读 ...
多线程读写安全
1、synchronized和volatile关键字有何不同?
1).volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程 ...
线程:是指进程中的一个执行流程。
线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源。
如何创建一个线程?
创建线程有两种方式,如下:
1、 扩展java.lang.Thread类
2、 实现Runnable接口
Thread类代表线程类,它的两个最主要的方法是:
run()——包含线程运行时所执行的代码
Start()——用于启动线程
一个线程只能被启动一次。第二次启动时将会抛出java.lang.IllegalThreadExcetpion异常
线程间状态的转换(如图示)
...
一. 基础知识
1. 进程和线程的区别?
什么是进程(Process):普通的解释就是,进程是程序的一次执行,而什么是线程(Thread),线程可以理解为进程中的执行的一段程序片段。在一个多任务环境中下面的概念可以帮 ...
http://caspers.iteye.com/blog/212876
http://yymmiinngg.iteye.com/blog/154258
做个备份
转:http://blog.sina.com.cn/s/blog_605f5b4f0100ir12.html
首先出场的是 DOM(JAXP
Crimson 解析器)
DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM
是以层次结构组织的节点或信息片断的集合。这个层次结构 ...
6
响应头域
响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信息和
Request-URI
进一步的信息。响应头域包含
Age
、
Location
、
Proxy-Authenticate
、
Public
、
Retry- After
、
Server
、
Vary
、
Warning
、
WWW-Authenticate
。对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理。
6.1
Location
响应头域
Loca ...
前言
HTTP
消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头,空行(只有
CRLF
的行),消息正文(可选)组成。
HTTP
消息报头包括通用报头、请求报头、响应报头、实体报头。每一个报头域都是由名字
+“
:
”+
空格
+
值组成,消息报头域的名字是大小写无关的。
1
请求消息格式
HTTP
请求内容由三部分组成:请求行、消息头(报头)、可选的请求正文(信息体)
1.1
请求行 ...
转:http://blog.csdn.net/chinalinuxzend/archive/2008/07/26/2716403.aspx
1.关于本文档
本文档所有的分析都是在1.2版本之上,偶尔会提到比较1.1版本.其他版本没有阅读.
一个星期时间的工作,不可能对memcache有很深刻的分析.文 ...
NIO
详解:
NIO主要包括两个部分:java.nio.channels包介绍Selector和Channel抽象,java.nio包介绍Buffer抽象。这
都是一些高级的特性,有许多微妙的使用细节。但是,我在下面不会对Buffer抽象上介绍太多,如果想要更深入的了 ...
进程中所有的线程共享相同的地址空间
static的变量可以被进程中所有线程共享
一个线程拥有自己的线程栈(stack),每个stack占用一定的内存空间,windows默认为1M,linux要小一些
这样一个服务器最多同时能开多少个线程 = 总内存/线程栈大小 ,比如1G 那么最多开 1G/1M = 1024个线程
所以不推荐用一个线程服务一个连接的方式,大多采用一个线程服务多个连接的方式,也就是非阻塞IO
非阻塞IO分为 水平触发和边缘触发,JDK的NIO 采用select 属于水平触发,就是哪个文件句柄有事件,就触发哪个文件读写,但是不一定流准备完毕。 ...
自己常去iteye 和 csdn ,一些活跃的java网站偶尔逛下常常有很多收获
第一个:
http://www.iteye.com
(www.iteye.com)
不解释。
第二个:
http://www.infoq.com/cn/
(英文主站:www.infoq.com)
非常著名的架构师站点,主要面向企业架构,做JaveEE方向的同学应该经常看。
第三个:
http://www.ibm.com/developerworks/cn/
,IBM developerWorks CN
IBM的网站,文章范围很广,但主要也是偏向Java方向。另,这个站的稿费 ...
转自:http://www.yesky.com/334/1951334.shtml
Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Servlet/JSP默认是以多线程模式执行的,所
以,在编写代码时需要非常细致地考虑多线程的安全性问题。然而,很多人编写Servlet/JSP程序时并没有注意到多线程安全性的问题,这往往造成编写
的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。
Servlet的多线程机制
Servlet体系结构是建立在Java多线程机制之上的,它的生 ...