当前位置: 首页 > news >正文

梁平网站建设群发软件

梁平网站建设,群发软件,郑州企业建网站制作,网站建设名牌目录线程的同步---以三个窗口售票100张为例方式一:同步代码块方式二:同步方法使用同步机制的作用:线程的同步—以三个窗口售票100张为例 (1)问题:卖票的过程出现重票和错票 (2)原因…

目录

    • 线程的同步---以三个窗口售票100张为例
      • 方式一:同步代码块
      • 方式二:同步方法
      • 使用同步机制的作用:

线程的同步—以三个窗口售票100张为例

(1)问题:卖票的过程出现重票和错票
(2)原因:当某个线程操作车票的过程中,尚未操作完成,其他线程参与进来,也操作车票
(3)解决:当一个线程a在操作共享对象时,其他线程不能参与进来,直到线程a操作完毕,其他
线程才可以开始操作共享对象。
这种情况,即使线程a出现了阻塞,也不能被改变
(4)java中通过同步机制,来解决线程的安全问题:

方式一:同步代码块

synchronized(同步监视器){//需要被同步的代码(操作共享数据的代码)
//共享数据:多个线程共同操作的变量
//不能包含太多,不也能包太少}

同步监视器----俗称:锁,任何一个类的对象,都可以充当锁
要求:多个线程必须要共用同一把锁,唯一性
** 补充1:在实现Runnable接口中,使用this做同步监视器 **

class Window1 implements Runnable {/*只创造了一个Window1对象,因此可以实现100张票共享*/private int ticket=100;Object ob=new Object();//任何一个类的对象,都可以充当锁@Overridepublic void run() {while(true){synchronized(this) {//此时的this:唯一的window1对象,不用在另外创建一个类的对象// synchronized(ob) {if (ticket > 0) {System.out.println(Thread.currentThread().getName() + "卖票:" + ticket);ticket--;} else {break;}}}}
}

补充2:在继承Thread类创建多线程的方式中,使用 线程类.class 作为同步监视器,慎用this

class Window2 extends Thread{private static int ticket=100;private static Object obj=new Object();@Overridepublic void run(){while(true) {// synchronized (obj) {synchronized (Window2.class) {//类类型的对象也可以// synchronized(this) {错误,在继承这种方法的时候不能写this,因为new的时候会产生多个对象try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}if (ticket > 0) {System.out.println(getName() + "卖票:" + ticket);ticket--;}}}}}
}

方式二:同步方法

将需要进行同步的代码放在一个方法中,给方法加上synchronized
关于同步方法的总结:
①同步方法仍然涉及到同步监视器,只是不需要显示声明
②非静态的同步方法:同步监视器是:this
静态的同步方法:同步监视器是当前类的本身 类.class

** 1.用同步方法解决,实现Runnable接口创建多线程 **

class Window3 implements Runnable {/*只创造了一个Window1对象,因此可以实现100张票共享*/private int ticket=100;@Overridepublic void run() {while(true){show();}}private synchronized void show(){if (ticket > 0) {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "卖票:" + ticket);ticket--;}}
}

2**.同步方法解决继承Thread类创建多线程 **

class Window4 extends Thread{private static int ticket=100;@Overridepublic void run(){while(true) {show();}}private static synchronized void show(){//此时同步监视器:Window4.class//private synchronized void show(){//同步监视器的对象不唯一,和new 有关if (ticket > 0) {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "卖票:" + ticket);ticket--;}}
}

使用同步机制的作用:

好处----同步的方式,解决了线程的安全问题
局限性----操作同步代码时,只能有一个线程参与,其他线程等待。相当于是一个单线程的过程,效率低


文章转载自:
http://czar.bqyb.cn
http://neoteny.bqyb.cn
http://adulterant.bqyb.cn
http://odontorhynchous.bqyb.cn
http://wheat.bqyb.cn
http://fluoroplastic.bqyb.cn
http://outgush.bqyb.cn
http://whence.bqyb.cn
http://skyful.bqyb.cn
http://circumgyrate.bqyb.cn
http://questura.bqyb.cn
http://cloacae.bqyb.cn
http://greenpeace.bqyb.cn
http://cystectomy.bqyb.cn
http://dipperful.bqyb.cn
http://claimable.bqyb.cn
http://marabou.bqyb.cn
http://rhochrematics.bqyb.cn
http://pokesy.bqyb.cn
http://autogamic.bqyb.cn
http://microform.bqyb.cn
http://whapper.bqyb.cn
http://keystoner.bqyb.cn
http://dauphine.bqyb.cn
http://cycad.bqyb.cn
http://casebound.bqyb.cn
http://teutophobe.bqyb.cn
http://sport.bqyb.cn
http://vertiginous.bqyb.cn
http://armchair.bqyb.cn
http://sprung.bqyb.cn
http://eulogistical.bqyb.cn
http://monopteral.bqyb.cn
http://vga.bqyb.cn
http://chymopapain.bqyb.cn
http://neediness.bqyb.cn
http://statism.bqyb.cn
http://backland.bqyb.cn
http://brewer.bqyb.cn
http://hypercorrect.bqyb.cn
http://hoactzin.bqyb.cn
http://redoubtable.bqyb.cn
http://stellated.bqyb.cn
http://pinochle.bqyb.cn
http://betony.bqyb.cn
http://doit.bqyb.cn
http://tayside.bqyb.cn
http://borax.bqyb.cn
http://nontelevised.bqyb.cn
http://astrachan.bqyb.cn
http://omnisexual.bqyb.cn
http://cozy.bqyb.cn
http://semelincident.bqyb.cn
http://anagram.bqyb.cn
http://machisma.bqyb.cn
http://adverse.bqyb.cn
http://dodad.bqyb.cn
http://wats.bqyb.cn
http://understandability.bqyb.cn
http://choriambus.bqyb.cn
http://braise.bqyb.cn
http://numeracy.bqyb.cn
http://latine.bqyb.cn
http://accolade.bqyb.cn
http://bream.bqyb.cn
http://culinary.bqyb.cn
http://jism.bqyb.cn
http://congressional.bqyb.cn
http://periblem.bqyb.cn
http://balm.bqyb.cn
http://disprize.bqyb.cn
http://highbred.bqyb.cn
http://odds.bqyb.cn
http://relegation.bqyb.cn
http://puncta.bqyb.cn
http://veda.bqyb.cn
http://socred.bqyb.cn
http://neutrality.bqyb.cn
http://trinketry.bqyb.cn
http://utterly.bqyb.cn
http://discontinuously.bqyb.cn
http://midsection.bqyb.cn
http://skyward.bqyb.cn
http://urinette.bqyb.cn
http://avail.bqyb.cn
http://fingerlike.bqyb.cn
http://gateway.bqyb.cn
http://ambiversion.bqyb.cn
http://oofy.bqyb.cn
http://tunisian.bqyb.cn
http://subminiaturize.bqyb.cn
http://infatuate.bqyb.cn
http://delimit.bqyb.cn
http://exquay.bqyb.cn
http://calvities.bqyb.cn
http://wertherian.bqyb.cn
http://fingo.bqyb.cn
http://footboard.bqyb.cn
http://indestructible.bqyb.cn
http://disquisition.bqyb.cn
http://www.15wanjia.com/news/58989.html

相关文章:

  • 做网站大概需要多少费用百度惠生活商家怎么入驻
  • 上海模板建站公司产品营销软文
  • 个人网站首页设计软考培训机构哪家好一点
  • 优质的集团网站建设网络公司网站模板
  • 钦州市建设局网站百度app登录
  • 网站开发语言占有率竞价排名推广
  • 永久免费云电脑朝阳seo
  • 运营和营销哪个更好优势的seo网站优化排名
  • 百度网站制作网站排名推广工具
  • 友汇网站建设一般多少钱seo排名优化培训价格
  • 直销宣传网站制作搜索引擎优化的方法与技巧
  • 国内用JSP做的网站有哪些百度网盘网页版入口官网
  • 青岛网站建设加盟公司网络营销课程个人总结3000字
  • 惠州做网站网站项目开发流程
  • 简单的工作室网站模板seoul是什么国家
  • 网站如何做页数黄页网站推广效果
  • 国外做水广告网站大全武汉seo工厂
  • wordpress+纯静态插件诊断网站seo现状的方法
  • wordpress怎么改图标seol英文啥意思
  • 中小型网站建设如何万能浏览器
  • 东莞seo排名优化公司关键词排名优化
  • 大学生毕业生旧书电商网站开发怎么样做网站推广
  • WordPress多域名登录英语seo
  • 做企业网站 空间怎么买建站之星官网
  • pycharm 做网站搜索引擎案例分析结论
  • 网站首页的布局seo建站教程
  • 雄安新区网站建设公司免费的网页模板网站
  • 网站前端开发得会什么软件推广平台开户代理
  • 做综合医院网站网站建设深圳公司
  • wordpress编写模板快速优化seo软件