java多线程编程要点(三)
在JDK1.5之前,对高质量Java多线程并发程序设计时,为防止程序崩掉等现象的出现,比如使用wait()、notify()和synchronized等,需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,通常会采用一些较为复杂的安全策略,加重了程序员的开发负担。在JDK1.5出现之后,大牛Doug Lee编写了java.util.concurrent java并发工具包,开发者利用此包,可大大提高并发程序的开发效率,并且能有效防止资源竞争、状态一致和避免死锁。java.util.concurrent包分成了三个部分,分别是java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.locks。内容涵盖了并发集合类、线程池机制、同步互斥机制、线程安全的变量更新工具类、锁等常用工具。
1) java.util.concurren:其主要的接口和类有Executor、Executors、ExecutorService、Callable、Future和BlockingQueue,这6个接口和类可如下理解:
﹒Executor:具体Runnable任务的执行者;
﹒Executors:提供了一系列工厂方法用于创先线程池,返回的线程池都实现了ExecutorService接口;
﹒ExecutorService:扩展了Executor并添加了一些生命周期管理的方法。一个ExecutorService的生命周期有三种状态:运行、关闭和终止。ExecutorService创建时处于运行状态,当调用ExecutorService.shutdown()后处于关闭状态,所有已添加的任务执行完毕后ExecutorService处于终止状态;
﹒Future:是与Runnable,Callable进行交互的接口,比如一个线程执行结束后取返回的结果等等,还提供了cancel终止线程;
﹒BlockingQueue:阻塞队列。
表格所示为代码示例:
package com.thread.test.concurent;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
i
相关文档:
//** **********创建工作簿************ */
WritableWorkbook workbook = Workbook.createWorkbook(new File("d:/test.xls"));
/** *//** **********创建工 ......
这一有关 Java 编程动态方面的新的系列文章研究了执行 Java 应用程序时幕后所发生的事情。企业 Java专家
Dennis Sosnoski 提供了 Java 二进制类格式以及在 JVM
内部类所发生的情况的内幕。接着,他将讨论类装入问题,其范围涉及从运行简单的 Java 应用程序所需的类的数量到可能造成 J2EE
及类似的复杂体系结构出现问题的 ......
反射使您的程序代码能够接入装载到JVM中的类的内部信息,允许您编写与执行时,而不是源代码中选定的类协作的代码。这使反射成
为构建灵活的应用的主要工具。但需注意的是 --如果使用不当,反射的成本很高。在Java平台系列的第2部分中,软件顾问Dennis
Sosnoski介绍了如何使用反射,以及某些相关的成本。您还将找到JavaRef ......
从JAVA直接读取EXCEL、WORD并生成PDF文件
1。操作EXCEL和WORD文件
使用JAVA从EXCEL、WORD文件中读写数据,可以使用http://jexcelapi.sourceforge.net/
提供的JAVA API-Java Excel API,这里有其指南http://www.andykhan.com/jexcelapi/tutorial.html
,可由此下载JAR文件http://www.andykhan.com/jexcelapi/download.h ......
Java集群之session共享解决方案
来源:http://blog.csdn.net/crskyp/archive/2009/11/19/4836685.aspx
随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求.比如像盛大,淘宝这样的大型网络公司,更是如此.
集群,也就是让一组计算机服务器协同工作 ......