A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Sj改变   /  2016-5-13 13:48  /  4468 人查看  /  36 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

w1001566 发表于 2016-5-15 16:02
大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按 ...

没学到同步代码块,,,,,,刚接触线程
回复 使用道具 举报
w1001566 发表于 2016-5-15 16:02
大神,拿你代码看了下
问题1:窗口3卖第十张票,不是卖剩余的第十张票
问题2:没有同步代码块,票号不按 ...
  1. public class Test2 {
  2.         public static void main(String[] args) {
  3.                 Tickets tickets = new Tickets();
  4.                 Thread t1 = new Thread(tickets, "窗口1");
  5.                 Thread t2 = new Thread(tickets, "窗口2");
  6.                 Thread t3 = new Thread(tickets, "窗口3");
  7.                 Thread t4 = new Thread(tickets, "窗口4");

  8.                 t1.start();
  9.                 t2.start();
  10.                 t3.start();
  11.                 t4.start();
  12.         }
  13. }

  14. class Tickets implements Runnable {
  15.         private int num = 100;
  16.         @Override
  17.         public void run() {
  18.                 while (true) {
  19.                         synchronized (this) {
  20.                                 if (num != 10 && num > 0) {
  21.                                         num--;
  22.                                         System.out.println(Thread.currentThread().getName() + ",还剩" + num + "票");

  23.                                 } else if (num == 10 && Thread.currentThread().getName().equals("窗口3")) {
  24.                                         num--;
  25.                                         System.out.println(Thread.currentThread().getName() + ",还剩" + num + "票");
  26.                                 }
  27.                                 else{
  28.                                         break;
  29.                                 }
  30.                         }
  31.                 }
  32.         }
  33. }
复制代码

简单的翻译一下,题目就好不要想的太多。这是我写的答案,你可以参考一下
回复 使用道具 举报
w1001566 发表于 2016-5-15 13:26
买火车票怎么让窗口3线程卖的是第是张票,zs和ls 羽毛球兵乓球怎么让线程执行6次就结束? ...
  1. package com.itheima.Demo;

  2. import java.util.Random;

  3. public class Test1 {
  4.         public static void main(String[] args) {
  5.                 String[] str = {"爬山","游泳","羽毛球","乒乓球","网球"};
  6.                 todo  something = new todo(str);
  7.                 new Thread(something,"ls").start();;
  8.                 new Thread(something,"zs").start();;
  9.         }
  10. }
  11. class todo implements Runnable{
  12.         private String[] str;
  13.         //把num定义为私有成员变量,保证了多个线程值操作以个num 当有一个线程,num等与6的时候就会结束。
  14.         private int num = 0;
  15.         private Random r =  new Random();
  16.         public todo(String[] str){
  17.                 this.str = str;
  18.         }
  19.        
  20.         @Override
  21.         public void run() {
  22.                 while(num < 6){
  23.                         synchronized(this){
  24.                                 if(num<6){
  25.                                        
  26.                                         int i = r.nextInt(str.length);
  27.                                         String name = Thread.currentThread().getName();
  28.                                         System.out.println(name + "要去" + str[i]);
  29.                                         num++;
  30.                                         try {
  31.                                                 this.wait(10);
  32.                                         } catch (InterruptedException e) {
  33.                                                 e.printStackTrace();
  34.                                         }
  35.                                 }
  36.                         }
  37.                 }       
  38.         }       
  39. }
复制代码
回复 使用道具 举报 1 0

。。。使劲看,帖子最后有个一大图呢,那个应该能看清
回复 使用道具 举报
还没有学到线程,但是看着感觉好难啊
回复 使用道具 举报
729524251 发表于 2016-5-15 21:32
还没有学到线程,但是看着感觉好难啊

线程在基础班的这些知识应该是挺简单了
回复 使用道具 举报
感谢分享
回复 使用道具 举报
朋友,你进入就业班了吧,,,题目好简单。。
回复 使用道具 举报
谢谢,非常感谢
回复 使用道具 举报
谢谢分享   很有用啊
回复 使用道具 举报
楼主 笔试题是现场写代码吗。
回复 使用道具 举报
第二次面试 还会问那些个人信息、家庭情况、性格特点么
还需要再自我介绍一遍么
  望告知
回复 使用道具 举报
谢谢分享!还需多努力~~~
回复 使用道具 举报
666,我还没学到呢,不过看看也好
回复 使用道具 举报
谢谢分享很有用
回复 使用道具 举报
收藏下 ,顶个
回复 使用道具 举报
[b] 感觉 好难得样子
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马