ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> JSP技术
转自别的论坛的一篇关于synchronized的讨论
关于 synchronized 的使用???

jaja

--------------------------------------------------------------------------------

    synchronized 是对某一方法或对象加锁, 只有拥有锁才能访问执行方法或其括号中的代码, OK, 这个道理我明白, 但是好象实际却不是这回事.

public class SyncTest{

public static void main(String[] args){

final StringBuffer s1=new StringBuffer();

final StringBuffer s2=new StringBuffer();

new Thread() {

public void run(){  //只有拥有s1的锁,才可以执行后面的代码,

   synchronized(s1){   //现在当前线程有S1的锁

       s1.append("A");   

      synchronized(s2){   // 当前线程有S2的锁吗, 我不知道?? 好象有吧

        s2.append("B");

      System.out.print(s1);

      System.out.print(s2);

      }   

    }

   }

}.start();  // 如果有S2的锁, 打印出AB

new Thread(){

  public void run(){

    synchronized(s2){  //当前线程有S2的锁吗??? 我一点也不知道

      s2.append("C");

synchronized(s1){

   s1.append("D");

   System.out.println(s2);

   System.out.println(s1);

   }

}

}

}.start();

}

}



哪位兄台可以详解一下? MM先行谢过

  

  





小乌      

--------------------------------------------------------------------------------

  the lock of the objects will be released after the synchronized code



public class SyncTest{

public static void main(String[] args){

final StringBuffer s1=new StringBuffer();

final StringBuffer s2=new StringBuffer();

new Thread() {

public void run(){  //

  synchronized(s1){   // 现在当前线程有S1的锁

      s1.append("A");   

     synchronized(s2){   // 当前线程拥有有S2的锁

       s2.append("B");

     System.out.print(s1);

     System.out.print(s2);

     }  // 释放S2的锁

   } // 释放S1的锁

  }

}.start();  // 如果有S2的锁, 打印出AB

new Thread(){

public void run(){

   synchronized(s2){  // 当前线程有S2的锁

     s2.append("C");

synchronized(s1){ // 现在当前线程有S1的锁

  s1.append("D");

  System.out.println(s2);

  System.out.println(s1);

  } // 释放S1的锁

} // 释放S2的锁

}

}.start();

}

}





  



chairyuan      

--------------------------------------------------------------------------------

     GG我来也:

   这个程序之所以显得正确,是因为每个thread都非常之快地运行结束。



public class SyncTest{

public static void main(String[] args){

final StringBuffer s1=new StringBuffer();

final StringBuffer s2=new StringBuffer();

new Thread() {

public void run(){  //只有拥有s1的锁,才可以执行后面的代码,

   synchronized(s1){   //现在当前线程有S1的锁

       s1.append("A");   

      synchronized(s2){   // 当前线程有S2的锁

  &nbs
 
 
本站关键词:
|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册||东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有