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性能