猿圈-javaa118多线程共享数据_第1页
猿圈-javaa118多线程共享数据_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

多线程共享经典的银行问题1000元。取钱之前,要首先进行判断:如果账户中的余额大于要取的金额,则可以执行取款操作,否则,将取款。我们假定有两个线程来分别从和进行取款操作,当A线程执行完判断执行取钱操作(1000元)BB根线程A的动作,这个线程将从上次中断的地方开始执行:也就是说,它将不再判断账1001000元,但实际上,银之所以出现上面这种问题,主要是因为两个线程A、B的是同一笔数据,它)pop()方法可以把一个元素从堆栈顶释放出来(称为“出栈”或“弹栈”),也就是说,对堆栈中的数据进行操作总是在栈顶(StackTop)进行,下图演in)数据(压栈),一个方法向外弹出(popout)数据(出栈)int分别表示向堆栈压入(push)数据和从堆栈出(pop)数据。publicinterfacepublicinterfacepublicvoidpush(intpublicint}publicclasspublicclassUnsafeStackimplements{privateinttop=privateint[]values=newpublicvoidpush(int{values[top]=n;//System.out.println("压入数字n1完成");for(inti=0;i<30;i++){}top++;//}publicint");top--;//3int[]test={values[top],top};//4values[top]=0;return}}用于对堆栈进行pop操作的PopThread类:classPopThreadclassPopThreadimplementsRunnableprivateStackInterface}}publicvoidrun()}publicPopThread(StackInterface{this.s=}classPushThreadimplements{classPushThreadimplements{privateStackInterfacepublicPushThread(StackInterfaces){this.s=s;}publicvoid{intk=15;}}publicclasspublicclassTestUnsafeStackpublicstaticvoidmain(String[]args)UnsafeStacks=newUnsafeStack();}}}PushThreadr1=newPushThread(s);PopThreadr2=newPopThread(s);Threadt1=newThread(r1);Threadt2=newThread(r2);压入数字11完成 压入数字11完成 出栈线程取出的数据其实不是栈

温馨提示

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

评论

0/150

提交评论