易截截图软件、单文件、免安装、纯绿色、仅160KB

java 中的 synchronized

synchronized: 同步的
synchronized在操作上有两种影响对象的情况:
1) 在某个对象实例内,synchronized method(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的synchronized方法;
2) 在某个类的范围,synchronized static aStaticMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。
除了方法前用synchronized关键字,synchronized关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是: synchronized(this){/*区块*/},它的作用域是当前对象;
synchronized关键字是不能继承的,也就是说,基类的方法synchronized method(){} 在继承类中并不自动是synchronized method(){},而是变成了method(){}。继承类需要你显式的指定它的某个方法为synchronized方法;
无论synchronized关键字加在方法上还是对象上,他取得的锁都是对象锁,而不是把一段代码或函数锁定,不能被别的对象访问,同一个类中的同一个方法会在该类的不同对象上被其他线程的对象访问。
每个对象只有一把锁(lock)和它相关联。
实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。
但当没有明确的对象需要锁定,只是想让一段代码同步时,能够创建一个特别的instance变量(他得是个对象)来充当锁:
class Foo implements Runnable {
       private byte[] lock = new byte[0];  // 特别的instance变量
       Public void method() {
           synchronized(lock) { //… }
       }
       //…
}
零长度的byte数组对象创建起来将比任何对象都经济,编译后的字节码:生成零长度的byte[]对象只需3条操作码,而Object lock = new Object()则需要7行操作码。
class Foo {
    public void method() { 
    &


相关文档:

Java线程:新特征 障碍器

Java线程:新特征-障碍器
 
Java5中,添加了障碍器类,为了适应一种新的设计需求,比如一个大型的任务,常常需要分配好多子任务去执行,只有当所有子任务都执行完成时候,才能执行主任务,这时候,就可以选择障碍器了。
 
障碍器是多线程并发控制的一种手段,用法很简单。下面给个例子:
 
import jav ......

java 视频处理 ffmpeg+mencoder

java 视频处理 ffmped+mencoder
转载自 http://huqilong.blog.51cto.com/53638/136985
 
ffmpeg+mencoder几乎可以完成目前基于web的播客平台任何音视频处理的操作.如果还需要添加一些什么的话,那么就是视频在线录制功能了,这个也可以用ffmpeg+fms来完成,因此一般的类似于YouTube的一些可见功能都可以在ffmpeg+menco ......

Java 生成 EXCEL POI文档说明

Java 生成 EXCEL POI文档说明
POI版本:3.0.2-FINAL
下载地址: http://poi.apache.org/index.html
 
一般在项目中真正要实现这样一个表格的时候,例如项目需要制作报表等等,通常的做法都是事先把格式一切的东西都手动制作好(这个做好了的文件在实际的项目里我们称之为“数据模板”,简称“模板&rd ......

java设计模式_Composite模式

Composite模式(组合)
   Java深入到一定程度,就不可避免的碰到设计模式这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Composite(组合模式)模式是比较常用的一个模式.
   Composi ......

利用Java实现zip压缩/解压缩

转自:
pconline:http://www.pconline.com.cn/pcedu/empolder/gj/java/0411/499156.html
好的东西转过来看看
由于网络带宽有限,所以数据文件的压缩有利于数据在Internet上的快速传输,同时也节省服务器的外存空间。
  Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解压缩的实现比较容易 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号