`
yaojialing
  • 浏览: 255748 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。 下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,每个线程都打印从0到99这100个 ...
认识: Apache MINA 2 是一个开发高性能和高可伸缩性网络应用程序的网络应用框架。它提供了一个抽象的事件驱动的异步 API,可以使用 TCP/IP、UDP/IP、串口和虚拟机内部的管道等传输方式。Apache MINA 2 可以作为开发网络应用程序的一个良好基础。   学习MINA的原因: 由于项目中使用到了socket,并且使用的是传统阻塞式socket编程,项目二期的时候发现生产环境过一段时间就会内存溢出,性能也没有一个好的保证,用检测工具发现线程很多阻塞了。以前公司都没有做过socket程序占大部分的这种项目,对于我们而言也只能网上找资料学习了。前一段时间对IM即时通讯感 ...
项目中因某种需求,在程序中操作数据的SQL加行级锁,避免出现插入重复的数据。但运行几天后报错,因此根据日志分析问题产生的原因。   问题描述:【Caused by: java.sql.SQLException: ORA-00054: resource busy and acquire with NOWAIT specified】 原因如下: 出现这个问题的原因是正在执行的操作请求的资源正被其他事务锁定。 nowait:立即执行,如果另有会话正在修改该记录会立即报告错误:ORA-00054: 资源正忙,要求指定 NOWAIT;如果不选择nowait选项则会一直处理等待状态。  wait [ ...
刚写过一篇Java笔记-使用JConsole进行JVM性能监测,今天就又遇上99%,乐不开支拍拍手打开JConsole就要收拾它。   在Thread选项卡中看到许多HTTP的请求线程都阻塞在org.hibernate.util.SoftLimitMRUCache.get(SoftLimitMRUCache.java:51)   很快就发现下面这个Thread   Name: TP-Processor24State: RUNNABLETotal blocked: 87  Total waited: 21   Stack trace: org.apache.commons.collec ...
内附:   .(1)可行性研究报告ISO软件工程模板 (2)项目开发计划ISO软件工程模板 (3)数据要求说明书ISO软件工程模板 (4)需求说明书ISO软件工程模板 (5)用户手册ISO软件工程模板 (6)概要 ... 等等  
虽然Scala创始人Martin Odersky说当年正是因为Java泛型的丑陋,所以才想到要创建一个新的语言,不过这仍然不妨碍我们学习Java泛型。毕竟即使听说Java泛型不好用,但好不好用还是得会用了才知道。下面是一些有关Java泛型的总结:   原文链接:http://edu.codepub.com/2009/1005/16129.php          
学习了下 rapid-validation,发现这个验证框架是个好东西,也支持tooltip,一些基本的表单验证都有了.    但如果遇到复杂的业务规则就必须自定义验证来解决,rapid-validation有写自定义验证的地方,但自己写的一般性验证效果都是alert()弹出式,不是tooltip那种效果,为了达到统一融合,就实现了所谓的自定义验证。   <script> var globle_flag=0;//全局变量,用来标记是否已经验证完自定义的。 new Validation(document.forms[0],{onSubmit:true,onFormVal ...
最近做的一个项目用到了开源的C/S应用的服务器框架MINA,当初做的时候资料非常少,只能自己不停的测试,总结出了一些规律经验。 从网上看的资料上看,这个服务器框架还是比较稳定和支持的并发数还是很不错的,不过没有 ...
nio学习:最近花了点时间研究了一下nio,及其开源框架MINA,现把心得总结如下:1:传统socket:阻塞式通信每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非常有效,但是如果对每一个连接都产生一个线程的无疑是对系统资源的一种浪费,如果连接数较多将会出现资源不足的情况example:server code: public class MultiUserServer extends Thread { private Socket client; public ...
Java中的阻塞和非阻塞IO包各自的优劣思考 NIO 设计背后的基石:反应器模式,用于事件多路分离和分派的体系结构模式。 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞 与非阻塞 。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待 状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不会等待 。 一种常用做法是:每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信( ...
在《.net操作MSN/IM/Messenger的一些资源》后,邀月又整理了一些Java版的IM资源,便于查询。1、Java IM SourceForge上一款开源IM软件,A simple and straightforeward instant messaging program written in Java for all platforms developed with ease of use and efficiency in mind.http://sourceforge.net/projects/im-java/2、Java Instant Messenger Java Ins ...
根据网上一些reverse ajax例子,自己随便写了个群内聊天的例子,只实现了群聊天,其它一些杂七杂八的都没实现,写这么个功能只是学习下reverse ajax而已,了解服务器推技术。   开发工具:eclipse 3.4 纯净版 环境:tomcat 6 技术:DWR   工程类说明: ChatManager.java 聊天实现类 Message.java 消息封装类 OnlineCounter.java 在线人数计算方法 OnlineCounterListener.java  统计在线人数 User.java  用户bean   页面: index.jsp  -- ...
<div id="test"></div> <button onclick="insertHTML()"/> <script> function insertHTML(){ var str="aaaaa"+"<script defer> alert('终于能运行JS了,靠!'); </script" + ">"; document.getElementById("test").insertAd ...
该软件无需安装,界面清爽。     转自:http://www.devdoc.org/index.php/archives/656   JD-GUI是一个独立运行应用程序,它以图形化的方式显示“.class”文件或者“.jar”文件的java源码,左侧为非常直观的包路径。你可以非常方便浏览到用JD-GUI反编译的源码,并且即时访问相关方法属性。 软件用c++写成,可反编译class文件,支持jar包级的反编译,可将整个jar包直接保存为*.src.zip源代码包系统界面:     支持的jdk版本:jdk1.2-jdk1.6特点:非常轻便、绿色无需安装、解压即可运行wi ...
观察者模式简介: 定义:定义对象间的一对多的依赖关系,当一个对象的状态改变时,所有依赖于它的对象都得到通知并被自动更新。   使用例子: 网上商店中的商品在名称、价格发生变化时,必须自动通知会员,Java的API为我们提供了Observer接口和Observable类来实现观察者模式。  Observable(可观察者)类允许在自身发生改变时,通知其它对象(实现接口Observer,观察者)。   使用java.util.Observer接口和java.util.Observable类实现观察者模式: 观察者实现Observer接口,并重写其中的update方法,供被观察者状态改变 ...
Global site tag (gtag.js) - Google Analytics