新寫了一個Java并發程序設計教程, 用于公司內部培訓的,和2007年寫的那個相比,內容更翔實一些。
內容列表
1、使用線程的經驗:設置名稱、響應中斷、使用ThreadLocal
2、Executor :ExecutorService和Future ☆ ☆ ☆
3、阻塞隊列 : put和take、offer和poll、drainTo
4、線程間的協調手段:lock、condition、wait、notify、notifyAll ☆ ☆ ☆
5、Lock-free: atomic、concurrentMap.putIfAbsent、CopyOnWriteArrayList ☆ ☆ ☆
6、關于鎖使用的經驗介紹
7、并發流程控制手段:CountDownlatch、Barrier
8、定時器: ScheduledExecutorService、大規模定時器TimerWheel
9、并發三大定律:Amdahl、Gustafson、Sun-Ni
10、神人和圖書
11、業界發展情況: GPGPU、OpenCL
12、復習題
下載地址:
http://files.cnblogs.com/jobs/Java%e5%b9%b6%e5%8f%91%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1%e6%95%99%e7%a8%8b.pdf
歡迎看了之后寫反饋給我。
博客園的文章地址:
http://www.cnblogs.com/jobs/archive/2010/07/29/1788156.html
Google云計算AppEngine
Java版剛剛推出來的時候,我就申請了該服務。該服務的申請需要提供手機號碼驗證,GOOGLE很牛B,能夠發送全球的手機短信。申請的帳號放了很久,
前段時間學習OpenID,需要作一個范例,于是就在Google
AppEngine上作,作的過程發現其不能使用線程,導致HttpClient組件無法工作,于是我修改了OpenID4Java的實現,全部使用
URLConnection來實現。最終程序部署成功了,網址 http://cogito-study.appspot.com,歡迎大家測試使用。
我來說一下我對Google AppEngine Java版本的使用感受吧。
1、
Google AppEngine
Java版本,具備基本功能,但是由于缺乏一些重要的功能,例如線程,沒有線程,很多庫無法使用,例如我上面提到的HttpClient不能使用。
Google提供一個類的白名單http://code.google.com/intl/zh-CN/appengine/docs/java
/jrewhitelist.html,大多數需要使用的類都有,javax.xml.crypto不再其中,使得我要部署一個SAML2的實現時玩不
轉。
2、Google
AppEngine提供了一個DataStore,使用JDO訪問數據,其查詢語言支持GQL。基本功能是具備的,但是也是存在很大的局限性,最多返回
1000行數據,COUNT(*)也是最多返回1000行。這個限制使得很多應用要跑在其上,會很麻煩。
3、部署很簡單,在Eclipse中使用Google提供的插件,輸入帳號密碼就可以部署了,太簡單了。但我使用的過程中,經常出現某些時段無法部署的情況,通常遇到這種情況,多嘗試幾次或者過段時間再嘗試就好了。
4、管理界面簡潔方便,功能基本完備。包括性能監控、數據管理、日志、計費等都有。
總結
Google的AppEngine Java版本已經具備了基本功能,可以部署簡單應用了,但是由于其功能不夠完備,目前大多數應用要部署在其上,都會要做相當大的修改或者無法實現。