<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[liulangdeyu]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/caip</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; caip]]></copyright><item><title><![CDATA[SAX学习笔记]]></title><link>https://blog.youkuaiyun.com/caip/article/details/83426232</link><guid>https://blog.youkuaiyun.com/caip/article/details/83426232</guid><author>caip</author><pubDate>Thu, 02 Jul 2009 16:14:51 +0800</pubDate><description><![CDATA[最近因为做一套SSO框架，需要解析SAML报文，研究了一下openSAML发现其需要1.5以上的jdk，于是决定自己做解析程序。在网上比较了一番dom和sax后，决定用sax来解析，因为我们更关注的是报文中某些个属性值，而不是报文的结构。闲话少叙，下面开始SAX的学习。

    首先我们先了解一下SAX的基本概念。SAX是Simple Api for XML的缩写，相比与DOM，SAX是一种...]]></description><category></category></item><item><title><![CDATA[java多线程设计模式详解之四--线程池与工作队列]]></title><link>https://blog.youkuaiyun.com/caip/article/details/83408099</link><guid>https://blog.youkuaiyun.com/caip/article/details/83408099</guid><author>caip</author><pubDate>Thu, 18 Jun 2009 21:29:18 +0800</pubDate><description><![CDATA[为什么要用线程池？

诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器，这种方式可能是通过网络协议（例如 HTTP、FTP 或 POP）、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达，服务器应用程序中经常出现的情况是：单个任务处理的时间很短而请求的数目却是巨大的。

构建服务...]]></description><category></category></item><item><title><![CDATA[java多线程设计模式详解之三--wait()以及notirfy() 简析 ]]></title><link>https://blog.youkuaiyun.com/caip/article/details/83408093</link><guid>https://blog.youkuaiyun.com/caip/article/details/83408093</guid><author>caip</author><pubDate>Thu, 18 Jun 2009 21:18:14 +0800</pubDate><description><![CDATA[[code=&quot;java&quot;]
class ThreadA 
{
  public static void main(String[] args) 
  {
    ThreadB b=new ThreadB();
    b.start();
    System.out.println(&quot;b is start....&quot;);
    synchronized(b)//括号里的b是什么...]]></description><category></category></item><item><title><![CDATA[java多线程设计模式详解之二--线程同步]]></title><link>https://blog.youkuaiyun.com/caip/article/details/83408091</link><guid>https://blog.youkuaiyun.com/caip/article/details/83408091</guid><author>caip</author><pubDate>Thu, 18 Jun 2009 21:14:56 +0800</pubDate><description><![CDATA[　　由于同一进程内的多个线程共享内存空间，在Java中，就是共享实例，当多个线程试图同时修改某个实例的内容时，就会造成冲突，因此，线程必须实现共享互斥，使多线程同步。
　　
　　最简单的同步是将一个方法标记为synchronized，对同一个实例来说，任一时刻只能有一个synchronized方法在执行。当一个方法正在执行某个synchronized方法时，其他线程如果想要执行这个实例的任意一...]]></description><category></category></item><item><title><![CDATA[java多线程设计模式详解之一--线程的创建和启动]]></title><link>https://blog.youkuaiyun.com/caip/article/details/83408089</link><guid>https://blog.youkuaiyun.com/caip/article/details/83408089</guid><author>caip</author><pubDate>Thu, 18 Jun 2009 21:10:26 +0800</pubDate><description><![CDATA[　　java语言已经内置了多线程支持，所有实现Runnable接口的类都可被启动一个新线程，新线程会执行该实例的run()方法，当run()方法执行完毕后，线程就结束了。一旦一个线程执行完毕，这个实例就不能再重新启动，只能重新生成一个新实例，再启动一个新线程。
　　
　　Thread类是实现了Runnable接口的一个实例，它代表一个线程的实例，并且，启动线程的唯一方法就是通过Thread类的...]]></description><category></category></item></channel></rss>