站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题Java多线程及其同步实现原理

Java多线程及其同步实现原理

摘要: 探讨Java多线程及其同步的实现
<body bgcolor="#FFFFFF" text="#000000"> <table width="570" border="0" cellspacing="0" cellpadding="5" bgcolor="FBE392"> <tr> <td> <table width="570" border="0" cellspacing="0" cellpadding="5"> <tr> <td bgcolor="E1B004" width="200" align="center">天极IT资讯短信服务 电脑小技巧
<table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="fffcc0"> function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } <form name=dn action="http://www.my5757.com/tj/join.jsp" target=_blank onSubmit="return check4()"> <tr valign=middle> <td>资费:包月5元
手机: <input type=text name=mobile size=11 style="border:1px solid #000000;height=16px"> <input type=image src="http://www.my5757.com/yesky/images/d34.gif" border="0" width="45" height="18" align="middle" name="image2" > </td> </tr> <input type=hidden name=stype value="yjq"> </form> </table> </td> <td width="370" bgcolor="FBC403">介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费) </td> </tr> </table> </td> </tr> </table>

  一. 实现多线程

  1. 虚假的多线程

  例1:

public class TestThread
{
 int i=0, j=0;
 public void go(int flag)
 {
  while(true)
  {
   try{ Thread.sleep(100);
  }
  catch(InterruptedException e)
  {
   System.out.println("Interrupted");
  }
  if(flag==0) i++;
  System.out.println("i=" + i);
  }
  else
  {
   j++;
   System.out.println("j=" + j);
  }
 }
}
public static void main(String[] args)
{
 new TestThread().go(0);
 new TestThread().go(1);
}
}

  上面程序的运行结果为:

i=1
i=2
i=3
。。。

  结果将一直打印出I的值。我们的意图是当在while循环中调用sleep()时,另一个线程就将起动,打印出j的值,但结果却并不是这样。关于sleep()为什么不会出现我们预想的结果,在下面将讲到。




↑返回目录
前一篇: 学习J2SE过程中的30个基本概念
后一篇: Java集合构架研究之一