新解析和编译源代码改变时,重新解析和编译页面页面中包含的其它页面的源代码改变时,重新解析和编译页面内存中代表该的对象不存在时,重新解析和编译页面原来生成的类不再存在时,重新解析和编译页面除去以上四种情况,不再重新解析和编译页面。对的进行预处理对于提高服务器的响应性能具有重要意义。因为如果个从未改变,如果每次请求该时,引擎均重新解析和编译该,不仅浪费系统资源,而且延长了对客户端的响应时间。解析文件的解析是引擎工作的核心。个页面由静态数据和动态数据组成,动态数据已经是代码,所以它们不必修改就可以使用,动态数据被顺序放进生成的的方法中。静态数据嵌入到方法中的实例的方法中。解析的过程实际上就是对源代码解析后,按照规范组合成个源文件的过程。引擎使用等几个类来实现对文件的解析。是对包中的和的封装,具有读出或回退单个字符和字符数组以及定位当前文件行数的功能。预先定义组的标准标签,并调用来读取文件内容,根据的标准标签,将读出的文件内容封装成个对象。根据生成的对象并结合规范生成个源文件。编译生成的只有编译成类才能够被容器所调用。我们使用优秀的开源程序来完成生成的类的编数据。提供了接口解决了这个问题。开发者如果想防止线程竞赛问题,他可以将其编写的实现接口。容器保证在调用实现了接口的的方法时只会让个线程执行并且次性执行完,其它相同请求的线程只能等待。规范没有规定容器要将个加载的保存多长时间,显然将个初始化的永久保存在缓冲池中是不可取的。容器会按照最近最少使用算法,定期清理缓冲池中的,对于很久未使用的,容器调用它的方法并将其移除以便它能够被垃圾回收。缓冲池按如下算法实现。用个缓冲对象对实例进行包装,由两个变量组成,个是代表实例的对象变量,个是代表每次访问该实例的时间变量。的主要方法是方法和方法,其内部用个哈希表和个有向链表实现缓冲,用个后台守护线程定期清理最近很久未使用的对象。哈希表存储实例的类名和将该实例进行包装的的名值对,有向链表存储实例的类名。具体实现见算法算法以及算法。过滤器规范增加了个很重要的新功能过滤器,其主要作用是在客户端请求到达被请求的服务之前,或者服务响应离开服务器到达客户端之前,根据需要对请求或响应进行预处理。与样,个也有三个方法表示它的生命周期和。容器处理的生命周期与处理类似,这里不再重述。容器实现过滤器的机制关键是要处理好过滤链。实现了接口,用以表示个或多个的集合。内部采用个队列用来存储所有该过滤链上的所有过滤器。过滤链上的过滤器执行时具有先后顺序,它们按照击鼓传花的方式逐个执行。容器按照如下方法处理过滤器当容器接收到个请求时,它获取请求的,找出所有在描述符中定义的与该匹配的,按照描述符中配置的映射的先后循序逐个将这些加到过滤链上。对象通过的方法传给该过滤链上的每个。过滤链提供方法用以激活过滤链上下个。是否调用过滤链的方法完全由应用程序决定,容器只保证在请求到达时激活过滤链上的第个。如果过滤器在过滤链的尾部,没有后继过滤器,容器将处理客户端所请求的服务。全,它是每个任务必须实现的接口,线程池只执行实现了该接口的类,它提供组方法用来规定执行任务的入口任务的执行状态任务执行完后的收尾工作等,从而保证线程逻辑和应用逻辑的分离,工作线程通过该接口调度任务的执行。流程图线程池处理任务的过程如图所示。存在的问题线程池为我们构建多线程的服务器应用程序提供了强大的机制,但使用它可能会出现些问题。资源不足问题这里的资源包括线程自身所使用的资源线程处理任务时可能需要的其它资源,例如数据库连接套接字或文件输入输出流等。资源不足问题的本质原因就是过多创建线程从而消耗包括内存和其它系统资源在内的大量资源。为解决资源不足问题,我们在线程池中提供了几个参数供用户根据实际情况优化线程池。线程池中最大线程数,默认为无限大。通常我们期望应该是服务器能够接受的最大并发访问数。如果有多于的并发请求,多余的请求将被任务队列进行缓存。图线程池处理任务的流程图线程池中最小线程数,默认为。服务器启动时,会初始化值为的线程数。任务队列中能够缓存的最大请求数,默认为。当任务队列已满时,多余的请求将被服务器拒绝。线程池中空闲线程能够保持的最大时间,默认为表示永不过期。保证了当并发访问数较低时,些空闲的线程能够被服务器终止,从而被垃圾回收器回收。线程泄漏问题线程池中可能出现的另个问题是线程泄漏问题。所谓线程泄漏,是指当从线程池中取出个线程以执行项任务,而在任务完成后该线程却没有返回池中。个任务在长时间运行后不可避免会产生些诸如连接超时或中断的情况,从而抛出个运行时的异常或。如果线程池没有捕捉到它们,那么这样的线程就会直接退出,从而线程池中线程的数目将会永久减少个。当这种情况发生的次数越来越多时,线程池最终就会为空,从而服务器无法为后续请求提供服务,因为池中已经没有可用的线程来处理任务。对于线程泄漏问题,我们在工作线程中监视任务对象的运行状况,如果发生,通过方法通知线程池进行相应的处理,从而保证所有的工作线程运行正常。引擎给开发者提供了两个重要的能力它提供了访问远程数据的机制如远程方法调用它让开发者从表现中封装和分离程序逻辑而达到最大程度的代码重用和灵活性。逻辑与表现的分离是它超越其它应用结构的个主要优势。引擎主要功能是处理文件。当容器发现用户请求的是个页面时,它将该请求交给引擎进行处理。因此,可以说在响应请求的过程中引擎是由容器调用的。我们将引擎的入口程序设计成个,该是引擎的主导程序,包括对引擎的初始化以及调用其它相关类对页面进行处理。引擎处理文件包括三个大的步骤判断该文件对应的实例是否存在并有效,如果条件满足,直接返回原实例,否则,进行下步,该过程称为的预处理解析文件生成文件将文件编译成类,生成的文件必须实现接口,继承自接口,因此最终生成的类实际上就是个。上述过程如图所示。图引擎处理的过程的预处理的预处理的作用是判断请求的文件是否已经编译成了且该是否是个有效的。如果是第次请求该,则请求解析器对进行解析如果该曾经被解析过,按照如下规则决定是否需要对该进行重文总设规模
本项目将形成年吞吐钢材万吨的能力,每天装卸能力为
了本项目可行性研究报告。
报告主要用途
根据华元金属公司与靖江市建设工程咨询中心签订的技术咨询合
同,本项目可行性研究报告主要用于向有关政府部门申请开展前期工
作,并向国土部门申请用地预审。项目投资的必要性相关产业政策产品市场需求项目建设方案
与节能环保措施,对项目投融资方案与项目财务效益进行了测算,并
就遇到的问题与项目承建单位进行了探讨在此基础上,结合有关方面的意见,编制项
目组按照国家有关可研报告编制规范和相关要求,与项目承建单位进
行了充分交流,开展了项目基础资料的调查工作通过对项目建设目
标和建设条件的了解,基础资料的收集与分析整理,进步分析研究
了。
编制过程
受项目单位委托,靖江市建设工程咨询中心江苏恒泰建设工程
咨询有限公司承担了江苏华元金属加工有限公司钢材仓储项目可行
性研究报告编制工作,并就该项工作组织有关人员成立了项目组。数第三版
江苏华元金属加工有限公司提供的本项目工艺技术设备
财务等相关原始资料
江苏华元金属加工有限公司与靖江市建设工程咨询中心签订的
本项目可行性研究报告编制委托合同名。
项目可行性研究报告编制依据
国家发展与改革委员会办公厅计办投资号文发布的投
资项目可行性研究指南试用版
国家发展改革委和建设部发布的建设项目经苏省江阴经济开发区靖江园区润舟钢结构工程有限公司货币
江苏新扬子造船有限公司货币
重庆钢铁股份有限公司货币
新加坡金阳投资公司货币
主要投资方概况
江阴经济开发区靖江园区润舟钢结构工程有限公司
企业基本情况
江阴经济开发区靖江园区润舟钢结构工程有限公司成立于年
月,为江阴泽舟投资有限公司和香港博联集团有限公司共同组建的中
外合资经营企业。公司注册地址为江阴经济开发区靖江园区,注的生产能力,已经难以满足日尾汽轴加入,经配汽室送入翅片管,蒸汽在管内被冷凝成
水,然后由汽轴的冷凝水通道排至冷凝水贮槽,再由冷凝水贮槽通过液位
调节阀减压送入次闪蒸罐,在闪蒸罐中产生表压蒸汽直未能利用,
均通过提取海水间接冷却后将冷却海水再排入附近海域,不仅浪费了能
源,资源得不到充分利用,而且也加大了企业的经营成本。
纯碱生产中的加热分解需要使用表压的蒸汽,程
进行推进。
生物化工有限公司每年生产万吨纯碱,是国内生产规模最大
的企业之,其产能位居国内第四位。该公司自万吨年纯碱工程投
产以来,制碱过程产生的高位余热部分得到利用,而低位能
间接冷却后将冷却海水再排入附近海域,或采用循环淡水冷却,余热回收
潜力巨大。而对于制碱过程产生的低位热能余热,国内纯碱行业基本没有
利用。为此,国家将纯碱余热利用作为十五十大重点节能工
我国纯碱生产行业的大型企业大都利用氨碱法纯碱生产工艺,在制碱
过程中多工段均产生大量的热能,对些高位热能的余热国内大型制碱企
业采取了回收利用措施,但仍有很多可利用新解析和编译源代码改变时,重新解析和编译页面页面中包含的其它页面的源代码改变时,重新解析和编译页面内存中代表该的对象不存在时,重新解析和编译页面原来生成的类不再存在时,重新解析和编译页面除去以上四种情况,不再重新解析和编译页面。对的进行预处理对于提高服务器的响应性能具有重要意义。因为如果个从未改变,如果每次请求该时,引擎均重新解析和编译该,不仅浪费系统资源,而且延长了对客户端的响应时间。解析文件的解析是引擎工作的核心。个页面由静态数据和动态数据组成,动态数据已经是代码,所以它们不必修改就可以使用,动态数据被顺序放进生成的的方法中。静态数据嵌入到方法中的实例的方法中。解析的过程实际上就是对源代码解析后,按照规范组合成个源文件的过程。引擎使用等几个类来实现对文件的解析。是对包中的和的封装,具有读出或回退单个字符和字符数组以及定位当前文件行数的功能。预先定义组的标准标签,并调用来读取文件内容,根据的标准标签,将读出的文件内容封装成个对象。根据生成的对象并结合规范生成个源文件。编译生成的只有编译成类才能够被容器所调用。我们使用优秀的开源程序来完成生成的类的编数据。提供了接口解决了这个问题。开发者如果想防止线程竞赛问题,他可以将其编写的实现接口。容器保证在调用实现了接口的的方法时只会让个线程执行并且次性执行完,其它相同请求的线程只能等待。规范没有规定容器要将个加载的保存多长时间,显然将个初始化的永久保存在缓冲池中是不可取的。容器会按照最近最少使用算法,定期清理缓冲池中的,对于很久未使用的,容器调用它的方法并将其移除以便它能够被垃圾回收。缓冲池按如下算法实现。用个缓冲对象对实例进行包装,由两个变量组成,个是代表实例的对象变量,个是代表每次访问该实例的时间变量。的主要方法是方法和方法,其内部用个哈希表和个有向链表实现缓冲,用个后台守护线程定期清理最近很久未使用的对象。哈希表存储实例的类名和将该实例进行包装的的名值对,有向链表存储实例的类名。具体实现见算法算法以及算法。过滤器规范增加了个很重要的新功能过滤器,其主要作用是在客户端请求到达被请求的服务之前,或者服务响应离开服务器到达客户端之前,根据需要对请求或响应进行预处理。与样,个也有三个方法表示它的生命周期和。容器处理的生命周期与处理类似,这里不再重述。容器实现过滤器的机制关键是要处理好过滤链。实现了接口,用以表示个或多个的集合。内部采用个队列用来存储所有该过滤链上的所有过滤器。过滤链上的过滤器执行时具有先后顺序,它们按照击鼓传花的方式逐个执行。容器按照如下方法处理过滤器当容器接收到个请求时,它获取请求的,找出所有在描述符中定义的与该匹配的,按照描述符中配置的映射的先后循序逐个将这些加到过滤链上。对象通过的方法传给该过滤链上的每个。过滤链提供方法用以激活过滤链上下个。是否调用过滤链的方法完全由应用程序决定,容器只保证在请求到达时激活过滤链上的第个。如果过滤器在过滤链的尾部,没有后继过滤器,容器将处理客户端所请求的服务。