当前位置: 首页 > news >正文

35岁学网站开发怎么样高端学校网站建设

35岁学网站开发怎么样,高端学校网站建设,广州腾虎网络科技有限公司,网站 备案 名称作者: yagesi 链接#xff1a;http://yagesi.javaeye.com/blog/165604 发表时间: 2008年02月27日 声明#xff1a;本文系JavaEye网站发布的原创博客文章#xff0c;未经作者书面许可#xff0c;严禁任何网站转载本文#xff0c;否则必将追究法律责任#xff01; 在Luce… 作者: yagesi  链接http://yagesi.javaeye.com/blog/165604  发表时间: 2008年02月27日 声明本文系JavaEye网站发布的原创博客文章未经作者书面许可严禁任何网站转载本文否则必将追究法律责任 在Lucene并发访问中,如果出现线程冲突,会造成索引文件的损坏,系统出现Lock obtain timed Out异常. 索引文件的临时目录会多一个work.lock或者commit.lock的文件,证明你并发访问出现了问题,索引文件已经损坏...在Lucene in Action中给出IndexWriter和IndexReader并发访问操作矩阵,矩阵中描述了两个操作不能同时执行的描述矩阵可以归纳为 IndexReader对象在从索引中删除一个文档时,IndexWriter对象不能向该索引库添加文档 IndexWriter对象在索引进行优化时,IndexReader对象不能从其中删除文档 IndexWriter对象在对索引进行合并时,IndexReader对象也不能从其中删除文档 以上三点引自 Lucene in Action 第二章 其实在程序中,到底该索引是否被锁定,我们可以通过IndexReader类的静态方法isLocked(Directory)进行判定..我测试过,如果使用IndexWriter访问索引,那么在我们创建IndexWriter对象的时候,索引文件就会被锁定,当调用IndexWriter的close方法时,锁才释放...当我们使用IndexReader访问索引文件时,当我们使用open打开索引时,文件不会被锁定,只有执行deleteDocument方法时才锁定,IndexReader的close方法时才释放...所以在并发访问索引文件的时候,我们除了要保证IndexWriter和IndexReader它们各自的并发访问的线程安全外,还要保证IndexWriter和IndexReader之间的并发访问... 下面是我实现的部分代码 public class IndexManager {private static Analyzer analyzer null;private static IndexWriter _company_writer null;private static IndexReader _company_reader null;private static ListThread _company_writer_thread new ArrayList();private static ListThread _company_reader_thread new ArrayList();static{Paoding paoding PaodingMaker.make();analyzer PaodingAnalyzer.writerMode(paoding);}private IndexManager(){}public static IndexWriter getCompanyIndexWriter(String path,Boolean isReBuild){synchronized(_company_writer_thread){if(_company_writernull){try {while(true){if(!IndexReader.isLocked(path)){_company_writer new IndexWriter(path,analyzer,isReBuild);break;}else{try {Thread.sleep(100);Thread.yield();} catch (InterruptedException e) {e.printStackTrace();}}}} catch (CorruptIndexException e) {e.printStackTrace();} catch (LockObtainFailedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}if(!_company_writer_thread.contains(Thread.currentThread()))_company_writer_thread.add(Thread.currentThread());return _company_writer;}}public static void closeCompanyIndexWriter(){synchronized(_company_writer_thread){if (_company_writer_thread.contains(Thread.currentThread()))_company_writer_thread.remove(Thread.currentThread());if (_company_writer_thread.size() 0){if (_company_writer ! null){try {_company_writer.close();} catch (CorruptIndexException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}_company_writer null;}}}}public static IndexReader getCompanyIndexReader(String path){synchronized(_company_reader_thread){if(_company_readernull){try {while(true){if(!IndexReader.isLocked(path)){_company_reader IndexReader.open(path);break;}else{try {Thread.sleep(20);Thread.yield();} catch (InterruptedException e) {e.printStackTrace();}}}} catch (CorruptIndexException e) {e.printStackTrace();} catch (LockObtainFailedException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}if(!_company_reader_thread.contains(Thread.currentThread()))_company_reader_thread.add(Thread.currentThread());return _company_reader;}}public static void closeCompanyIndexReader(){synchronized(_company_reader_thread){if (_company_reader_thread.contains(Thread.currentThread()))_company_reader_thread.remove(Thread.currentThread());if (_company_reader_thread.size() 0){if (_company_reader ! null){try {_company_reader.close();} catch (CorruptIndexException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}_company_reader null;}}}}}   该类使用静态方法获取IndexWriter和IndexReader对象,在获取方法中,要判断该索引是否被锁定IndexReader.isLocked(Directory)方法,该方法主要为了防止IndexWriter和IndexReader它们之间的并发问题,至于IndexWriter和IndexReader它们自己本身的并发访问问题,使用了一个线程集合来进行管理,可以确保获取的访问对象不会出现同步问题.但是获取的IndexWriter或者IndexReader对象,在close的时候,一定要调用IndexManager的closeXXXXXXX()方法,这样线程池才能有效的管理IndexWriter,IndexReader实例线程... 并发访问问题就介绍到这里,由于刚刚开始学写帖子,有很多地方词不达意,表述不清,请大家谅解,我相信:会进步的...谢谢  本文的讨论也很精彩浏览讨论 JavaEye推荐 快来参加7月17日在成都举行的SOA中国技术论坛JavaEye问答大赛开始了 从6月23日 至 7月6日奖品丰厚 北京: 千橡集团暨校内网诚聘软件研发工程师Oracle专区上线有Oracle最新文章重要下载及知识库等精彩内容欢迎访问。搜狐网站诚聘Java、PHP和C工程师文章来源:http://yagesi.javaeye.com/blog/165604 转载于:https://www.cnblogs.com/schwarzwald/archive/2008/07/05/1236204.html
http://www.huolong8.cn/news/292818/

相关文章:

  • 枣阳做网站wordpress百家号
  • 计算机技术员网站建设怎么提交网站到百度
  • 网站数据库安装教程c 做网站设计
  • 电子商务网站推广怎么做网站后台安全性
  • 建设电商网站的个人心得编程入门教程网
  • 四川省建设人才网站小企业网站建设哪找
  • 做网站备负责人风险大吗新闻发布会邀请哪些媒体
  • 为餐饮企业做网站推广小说网站建站程序
  • asp.net网站开发简明教程网站建设询价单
  • 招聘网站开发技术维护建筑公司网站能显示二级建造师报名吗
  • 手机网站seo怎么做跳转短链接生成
  • 湖北自适应网站建设报价中国手机网
  • 电子商务网站建设试卷.doc企业qq免费版
  • 烟台开发区网站建设wordpress在中国很慢
  • 安丘网站开发代理上网
  • 可以做游戏可以视频约会的网站前端开发培训机构成都
  • 设计网站公司力荐亿企邦版图设计工资一般多少
  • 温州网站建设方案维护网站建设html的好处
  • 网站建设公司如何收费北京装修平台网站
  • 免费网站正能量入口下载天津外贸seo推广
  • 昊诺网站建设网络推广下列是网页制作软件
  • 医疗网站前置审批取消给建设单位造成损失的
  • c语言和c 哪个做网站好企业网站建设实训报告体会
  • 凯里网站建设手机网站相册代码
  • wordpress 创建网站网站建设实训建议
  • 旅行网站排名摄影 网站 源码
  • 建筑案例分析网站网站开发可以开发哪些
  • 网站制作前需要进行规划设计服装集团网站建设
  • 做数据网站合肥网站运营
  • 做企业门户网站响应式网站几个断点