java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步_第1页
java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步_第2页
java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步_第3页
java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步_第4页
java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java多线程实现火车售票系统 以及java中的同步的实现 同步块 和同步方法同时 同步   /*利用Java 多线程模拟火车站售票系统  了解java中的同步class  Test  public  static void main(String args)       SellThread st=new SellThread(); /创建一个实现了implements接口的对象    new Thread(st).start();   /启动

2、四个Thread     new Thread(st).start();    new Thread(st).start();    new Thread(st).start();     class SellThread   implements Runnable   int index =100;    public void run()         

3、;    while(true)                 if(index>0)                    try           

4、0;        Thread.sleep(10);  /函数抛出异常我们要进行异常捕获 休眠之后 所有Thread等待在这里                    catch(Exception e)             

5、          e.printStackTrace();                    System.out.println(Thread.currentThread().getName()+"sell tickets "+ index-);     

6、60;                    */  /*上面的代码 不能保证同步 即每次只允许一个 THREAD访问 资源  我们要对这个临界区进行保护   每个对象都有一个监视器 通过检测对象是否被枷锁 从而判断是否进入临界区  同步快监视的是任意 对象  而同步方法监视的是 this 对象 有2种方法   1.同步块  2.同步方法

7、     1. synchronized( Object)          .       2.方法前面加上 synchronized修饰    class  Test  public  static void main(String args)       SellThread st=new SellThread(); /创建一个实现

8、了implements接口的对象    new Thread(st).start();   /启动四个Thread     new Thread(st).start();    new Thread(st).start();    new Thread(st).start();     class SellThread   implements Runnable   int index

9、=100; */同步块         /*public void run()               while(true)                   synchronized(this)   /通过对象监视器枷锁每次只有一

10、个线程进入临界区这个监视对象可以是任意                   if(index>0)                    System.out.println(Thread.currentThread().getName()+"

11、sell tickets "+ index-);                             /同步块       public void run()             while(true) 

12、;                     sell();  /调用同步方法进行控制            /同步方法  synchronized public void sell()              

13、0;  if(index>0)                    System.out.println(Thread.currentThread().getName()+"sell tickets "+ index-);                /同步方

14、法 */ /同步快与同步方法实现同步  class  Test  public  static void main(String args)   throws  Exception         SellThread st=new SellThread(); /创建一个实现了implements接口的对象    new Thread(st).start();   /启动四个Thread  

15、60;  Thread.sleep(1);    st.b=true ;  /    new Thread(st).start();    class SellThread   implements Runnable   int index =100;    boolean b=false;  /用来实现同步    Object o=new Object(); /获得一个检测对象/同步块 

16、0;       public void run()              if(b=false)              while(true)                 &#

17、160;       synchronized(o)  /同步块可以监视任意对象但是   同步方法只能监视this 对象                                  &

18、#160;         if(index>0)                  System.out.println("this  "+Thread.currentThread().getName()+"sell ticket "+index-);     

19、                                else        while(true)           if(index>0)      &

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论