|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,
在Java5之前,线程是没有前往值的,经常为了“有”前往值,破耗周折,并且代码很欠好写。大概爽性绕过这道坎,走其余路了。
如今Java终究有可前往值的义务(也能够叫做线程)了。
可前往值的义务必需完成Callable接口,相似的,无前往值的义务必需Runnable接口。
实行Callable义务后,能够猎取一个Future的对象,在该对象上挪用get就能够猎取到Callable义务前往的Object了。
上面是个很复杂的例子:
import java.util.concurrent.*;
/**
* Java线程:有前往值的线程
*
* @author Administrator
*/
public class Test {
public static void main(String[] args) throws ExecutionException, InterruptedException {
//创立一个线程池
ExecutorService pool = Executors.newFixedThreadPool(2);
//创立两个有前往值的义务
Callable c1 = new MyCallable("A");
Callable c2 = new MyCallable("B");
//实行义务并猎取Future对象
Future f1 = pool.submit(c1);
Future f2 = pool.submit(c2);
//从Future对象上猎取义务的前往值,并输入到把持台
System.out.println(">>>"+f1.get().toString());
System.out.println(">>>"+f2.get().toString());
//封闭线程池
pool.shutdown();
}
}
class MyCallable implements Callable{
private String oid;
MyCallable(String oid) {
this.oid = oid;
}
@Override
public Object call() throws Exception {
return oid+"义务前往的内容";
}
}
>>>A义务前往的内容
>>>B义务前往的内容
Process finished with exit code 0
十分的复杂,要深切懂得还必要看Callable和Future接口的API啊。
出处:http://lavasoft.blog.51cto.com/62575/222082
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。 |
|