lock.lock(); try { xxxx; } finally { lock.unlock(); }
三.sleep和wait的區別html
sleep是線程被調用時,佔着cpu去睡覺,其餘線程不能佔用cpu,os認爲該線程正在工做,不會讓出系統資源,
wait是進入等待池等待,讓出系統資源,其餘線程能夠佔用cpu,通常wait不會加時間限制,
由於若是wait的線程運行資源不夠,再出來也沒用,要等待其餘線程調用notifyall方法喚醒等待池中的全部線程,纔會在進入就緒序列等待os分配系統資源,
sleep是靜態方法,是誰掉的誰去睡覺,就算是在main線程裏調用了線程b的sleep方法,實際上仍是main去睡覺,想讓線程b去睡覺要在b的代碼中掉sleep
sleep(100L)是佔用cpu,線程休眠100毫秒,其餘進程不能再佔用cpu資源,wait(100L)是進入等待池中等待,交出cpu等系統資源供其餘進程使用,
在這100毫秒中,該線程能夠被其餘線程notify,但不一樣的是其餘在等待池中的線程不被notify不會出來,
但這個線程在等待100毫秒後會自動進入就緒隊列等待系統分配資源,
換句話說,sleep(100)在100毫秒後確定會運行,但wait在100毫秒後還有等待os調用分配資源,因此wait100的中止運行時間是不肯定的,但至少是100毫秒。
四.struts2中如何國際化 考慮幾種狀況 js jsp action 普通java類
1:java內置的國際化 http://www.educity.cn/wenda/64473.html
java內置的國際化,以java.util.ResourceBundle和java.util.Locale兩個類爲中心,其中 java.util.Locale負責選擇合適的語言,
而java.util.ResourceBundle負責根據注入的 java.util.Locale對象來選擇國際化信息的來源,返回國際化信息。
package com.capinfotech.util; import java.util.Locale; import java.util.ResourceBundle; public class Language { public static void main(String[] args) { Locale local1= Locale.SIMPLIFIED_CHINESE; ResourceBundle bundle1 = ResourceBundle.getBundle("message", local1); System.out.println("bundle=" + bundle1.getString("labela")); Locale enLocal = Locale.US; ResourceBundle bundle2 = ResourceBundle.getBundle("message", enLocal); System.out.println("enBundle=" + bundle2.getString("labela")); Locale franceLocal = Locale.FRANCE; ResourceBundle franceBundle = ResourceBundle.getBundle("message", franceLocal); System.out.println("franceLocal=" + franceBundle.getString("labela")); } }
Locale local1= Locale.SIMPLIFIED_CHINESE; ResourceBundle bundle1 = ResourceBundle.getBundle("message", local1); String message = bundle1.getString("labela"); String[] params = new String[2]; params[0] = "Petter"; params[1] = "20100000000"; //將參數合成進讀出的國際化信息 String info = MessageFormat.format(message, params); System.out.println(info);
2.jspjava
首先包含國際化資源文件message.properties, message_zh_CN.properties, message_en_US.propertiesapi
而後在struts.xml中設置一個常量:<constant name="struts.custom.i18n.resource" value="message" />jsp
<s:text name="labela" /> <br> <s:text name="labelb" > <s:param>ok</s:param> </s:text> <br> <s:i18n name="com.capinfotech.action"> <s:text name="labela" /> </s:i18n> <s:form> <s:textfield name="name1" key="labela" /> </s:form>
3.action工具
System.out.println(this.getText("labela")); //訪問默認的國際化信息 System.out.println(this.getText("labelb", null, "ok")); //訪問默認的國際化信息並傳入參數值爲ok ResourceBundle bundle = this.getTexts("message"); //訪問名爲message的全局國際化信息 System.out.println(bundle.getString("labela"));
五java中異常處理機制的簡單原理和應用post
http://www.blogjava.net/b47617/archive/2006/03/04/33561.html性能