Java多线程同步具体实例讲解

原创|其它|编辑:郝浩|2010-04-29 13:39:52.000|阅读 646 次

概述:Java多线程同步在语言应用中十分的关键,我们在不断的学习中就会注意到这一点。下面我们就详细的看看如何才能更好的进行Java多线程同步的应用。本文的代码会对你有所帮助。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  Java多线程同步在语言应用中十分的关键,我们在不断的学习中就会注意到这一点。下面我们就详细的看看如何才能更好的进行Java多线程同步的应用。下面的代码会对你有所帮助。

  一个很重要的关键字就是线程同步synchronized,下面的火车票的售票系统的模型:同步分为同步块和同步方法:


    1.class SellThread implements Runnable
  2.{
  3.int tickets=100;
  4.Object obj=new Object();
  5.boolean b=false;
  6.public void run()
  7.{
  8.if(b==false)
  9.{
  10.while(true)
  11.sell();
  12.}
  13.else
  14.{
  15.while(true)
  16.{
  17.synchronized(obj)
  18.{
  19.try
  20.{
  21.Thread.sleep(10);
  22.}
  23.catch(Exception e)
  24.{
  25.e.printStackTrace();
  26.}
  27.synchronized(this)
  28.{
  29.if(tickets>0)
  30.{
  31.System.out.println
  32.("obj:"+Thread.currentThread().getName()+
  33."
  34.sell tickets:"+tickets);
  35.tickets--;
  36.}
  37.}
  38.}
  39.}
  40.}
  41.}
  42.public synchronized void sell()
  43.{
  44.synchronized(obj)
  45.{
  46.if(tickets>0)
  47.{
  48.try
  49.{
  50.Thread.sleep(10);
  51.}
  52.catch(Exception e)
  53.{
  54.e.printStackTrace();
  55.}
  56.System.out.println("sell():"+Thread.currentThread
  57.().getName()+
  58." sell tickets:"+tickets);
  59.tickets--;
  60.}
  61.}
  62.}
  63.}

  通过网上资料得知:同步块和同步方法其实本质是一样的:都是对对象枷锁。Java多线程同步中每个对象都有一个监视器----锁,同步方法是利用this所代表的对象的锁,同步块利用的是同步块对象本身的锁。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP