<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>songyangaaron</title>
    <description></description>
    <link>http://songyangaaron.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>关于多线程访问本地DLL的问题，超BT问题。。。</title>
        <author>songyangaaron</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://songyangaaron.javaeye.com">songyangaaron</a>&nbsp;
          链接：<a href="http://songyangaaron.javaeye.com/blog/188346" style="color:red;">http://songyangaaron.javaeye.com/blog/188346</a>&nbsp;
          发表时间: 2008年04月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          不好意思，标题上不加点噱头很难吸引高手的眼光啊，不过这个题目绝对让您不枉此行。<br /><br /><span style="color: blue">基本情况：</span><br /><br />通过JNI调用本地DLL实现一个功能，程序结构：工作类->包装类(Caller)->JNI接口->DLL文件。<br /><br />JNI接口类里的方法都是同步方法，加了synchronized。包装类里通过单例模式保证只有一个JNI接口类实例。<br /><br />Java程序和DLL功能之间传递的参数为byte[]。<br /><br /><span style="color: blue">问题：</span><br /><br />工作类用单线程访问包装类里的功能方法时，没有任何问题，调用多少次都没有问题。<br /><br />工作类中用多线程访问（即使是同步访问）时，第一个线程第一次调用成功，其他线程一调用JVM就抛出异常（具体信息附后）。<br /><br /><span style="color: blue">请问：</span><br /><br />1.为什么即使通过同步来保证多线程访问DLL功能是顺序串行发生的，仍然和单线程访问不同？<br /><br />2.用什么办法解决这个问题可以保证程序的性能？<br /><br />3.单独运行一个进程提供DLL中的功能，用进程间通讯的方式是不是可以解决？<br /><br />谢谢！<br /><br /><br /><span style="color: green">异常信息：<br /># An unexpected error has been detected by Java Runtime Environment:<br />#<br />#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x030094c1, pid=11008, tid=13224<br />#<br /># Java VM: Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode, sharing)<br /># Problematic frame:<br /># C  [HLSSplit.dll+0x294c1]<br />#<br /># An error report file with more information is saved as hs_err_pid11008.log<br />#<br /># If you would like to submit a bug report, please visit:<br />#   http://java.sun.com/webapps/bugreport/crash.jsp<br />#</span>
          <br/>
          <span style="color:red;">
            <a href="http://songyangaaron.javaeye.com/blog/188346#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 30 Apr 2008 11:30:29 +0800</pubDate>
        <link>http://songyangaaron.javaeye.com/blog/188346</link>
        <guid>http://songyangaaron.javaeye.com/blog/188346</guid>
      </item>
      <item>
        <title>[原创]这个题目有点难</title>
        <author>songyangaaron</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://songyangaaron.javaeye.com">songyangaaron</a>&nbsp;
          链接：<a href="http://songyangaaron.javaeye.com/blog/151866" style="color:red;">http://songyangaaron.javaeye.com/blog/151866</a>&nbsp;
          发表时间: 2007年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个论坛牛人比较多哈，请教一个算法题：<br /><br />有A、B两个集合（元素为整数，可重复出现），其中A中若干整数的代数和与B中若干整数的代数和相等，用算法求出所有可能的组合，并指出在哪种组合方式下用到A和B中的整数最多（每个数只能用一次）。<br /><br />能用函数式实现更好啦，让俺也学习学习。：）<br /><br />为了更好的理解题目含义，举个例子吧。<br /><br />A: 1 3 5 6<br />B: 2 4 7 9<br /><br />组合1: 1+6=7 共用到3个数<br />组合2: 1+3=4, 6=2+4 共用到6个数<br />组合3: 1+5=2+4, 3+6=9 共用到7个数<br />......<br /><br />在列出的组合方式中，组合3用到的数最多。
          <br/>
          <span style="color:red;">
            <a href="http://songyangaaron.javaeye.com/blog/151866#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 29 Dec 2007 19:06:09 +0800</pubDate>
        <link>http://songyangaaron.javaeye.com/blog/151866</link>
        <guid>http://songyangaaron.javaeye.com/blog/151866</guid>
      </item>
  </channel>
</rss>