`
enetor
  • 浏览: 188408 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
死锁 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多线程机制之上的,它的生 ...
Global site tag (gtag.js) - Google Analytics