|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。
详细感化就未几讲了,也许就是包管可见性和避免重排序。实在很早前就晓得有这个关头字,试过良多次,总以为加了和没加效果一样。
此次终究在浏览《java并发程序理论》(特地任务告白一下,好书)的时分有了灵感,写了一段很一般的代码:
Java代码
public class NoVisibility {
private boolean ready=false;
int num;
private class ReaderThread extends Thread {
public void run() {
int count = 0;
while (!ready)
{
count++;
}
System.out.println(num);
}
}
public static void main(String[] args) throws InterruptedException {
NoVisibility x = new NoVisibility();
x.new ReaderThread().start();
x.num = 43;
x.ready = true;
System.out.println("main Thread end");
}
}
再写一段python来一直地挪用它(由于纷歧定总能呈现),不久后就会发明不前往了,ready值的更新一向对ReaderThread线程不成见。假如ready加个volatile就不会有成绩了,能够一向运转。
Python代码
import os
i=0
while True:
os.system("java -server NoVisibility")#or os.popen
i+=1
print "run count"+str(i)
感觉:
1.java运转时加参数-server用server版的假造机出成绩概率很高,听说是server才经由大批优化。
2.while(!ready)的轮回内假如有System.out操纵时,也几近不出成绩,进步了可见性?(这个是我的推测)
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net网页编程比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。 |
|