Java多线程同步在语言应用中十分的关键,我们在不断的学习中就会注意到这一点。下面我们就详细的看看如何才能更好的进行Java多线程同步的应用。下面的代码会对你有所帮助。
目前创新互联已为上1000家的企业提供了网站建设、域名、虚拟主机、成都网站托管、企业网站设计、盐池网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
一个很重要的关键字就是线程同步synchronized,下面的火车票的售票系统的模型:同步分
同步块和同步方法:
- class SellThread implements Runnable
- {
- int tickets=100;
- Object obj=new Object();
- boolean b=false;
- public void run()
- {
- if(b==false)
- {
- while(true)
- sell();
- }
- else
- {
- while(true)
- {
- synchronized(obj)
- {
- try
- {
- Thread.sleep(10);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- synchronized(this)
- {
- if(tickets>0)
- {
- System.out.println
- ("obj:"+Thread.currentThread().getName()+
- "
- sell tickets:"+tickets);
- tickets--;
- }
- }
- }
- }
- }
- }
- public synchronized void sell()
- {
- synchronized(obj)
- {
- if(tickets>0)
- {
- try
- {
- Thread.sleep(10);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- System.out.println("sell():"+Thread.currentThread
- ().getName()+
- " sell tickets:"+tickets);
- tickets--;
- }
- }
- }
- }
通过网上资料得知:同步块和同步方法其实本质是一样的:都是对对象枷锁。Java多线程同步中每个对象都有一个监视器----锁,同步方法是利用this所代表的对象的锁,同步块利用的是同步块对象本身的锁。
新闻名称:Java多线程同步具体实例讲解
路径分享:http://www.shufengxianlan.com/qtweb/news9/144659.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联