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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© H-Deka 中级黑马   /  2014-3-26 17:22  /  1883 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

火车票售票多线程的思路是什么?需要使用同步代码块吗?

10 个回复

倒序浏览
  1. class Demo extends Thread
  2. {       
  3.         private static  int key=100;
  4.         public void run()
  5.         {        while(true)
  6.                 {if(key>0)
  7.                 {

  8.                 System.out.println(Thread.currentThread().getName()+";;="+key--);
  9.                 }
  10.                 }
  11.         }
  12. }

  13. class  A
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 Demo d=new Demo();
  18.                 Demo d1=new Demo();
  19.                 Demo d2=new Demo();
  20.                 Demo d3=new Demo();
  21.                         d.start();
  22.                         d1.start();
  23.                         d2.start();
  24.                         d3.start();
  25.         }
  26. }
复制代码

思路就是 车票有多少
用多少个窗口来卖,每个窗口看作一个线程,我做的时候是这样想的。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
楼上的代码就是教学视频当中的例子程序,
不需要同步代码块。
步骤其实就是 产生线程的其中一种方法,
继承Thread类,然后在run()方法里面写你要实现的功能,最后start相应的线程。

思路就是多线程的思想,将原来一个窗口售票,改为多个窗口售票,加大效率,
任务还是售票的任务,但只不过是多了几个“帮手”而已,
有点抽象,还是需要楼主你自己理解。
回复 使用道具 举报 1 0
设为首页实名认证切换到宽版开启辅助访问官网首页|关于我们|联系我们|登陆报名系统

快捷导航
IT学习社区论坛首页积分商城视频下载
        帖子        搜索
追逐我的设置消息提醒 退出
黑马程序员IT技术论坛»论坛首页›学员专区›JavaEE+Android入学交流区›第30,31届JavaEE+Android技术交流区›售票小例子-------Runnable
【官方】申领16G高清视频学习光碟
大量高清学习视频教程订阅        黑马全攻略之住宿生活篇
热版推荐:官方公开课|学员感言|企业招聘|技术沙龙
热门推荐

黑马史诗级屌丝谈面试

Net&Unity2014招聘会

大型程序员招聘会
军校妹子,深谈心中的黑马程序员【高清视频】在游戏世界里驰骋【iOS培训】回帖领ios视频教程年薪15W的万元哥分享面试经验零基础到20期面试—全过程分享黑客与画家——工作3年再转型【强哥笔记】之Java高新技术一个为进云六的C++屌丝28个日夜畅谈从屌丝程序员到大牛成长之路8k、9k offer扎堆我的面试感言高薪就业,浅谈面试重点和难点一次面试毙掉8.5k offer牛人经验
返回列表
生成文章
查看: 27|回复: 0
  [资源分享] 售票小例子-------Runnable [复制链接]
追逐

72
主题       
170
帖子       
48
技术分


电梯直达楼主
发表于 2014-3-18 09:19:56 | 只看该作者
/*
简单的买票程序。多个窗口同时卖票

创建线程的第二种方式:实现Runnable接口

步骤:
1,定义类实现Runnable接口
2,覆盖Runnable接口中的run方法,
        将线程要运行的代码存放在该run方法中。

3,通过Thread类建立线程对象。
4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
        为什么要将Runnable接口的子类对象传递给Thread类的构造函数
        因为,自定义的run方法所属的对象是Runnable接口的子类对象
        所以要让线程去找到指定对象的run方法,就必须明确该run方法所属        

对象。

5,调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
*/
//定义类实现Runnable接口
class Test1 implements Runnable {
        
        private int piao = 100;
        public void run() {
                while(true) {
                        if(piao > 0) {
                                System.out.println(Thread.currentThread().getName() + "run..." + piao--);
                        }
                }
        }
        
}

class ThreadTest1 {
        public static void main(String[] args) {
                //创建Runnable接口的子类对象
                Test1 t = new Test1();
                //创建四个线程,把Runnable接口的子类对象当成实参传递给线程的构造函数
                Thread t1 = new Thread(t);
                Thread t2 = new Thread(t);
                Thread t3 = new Thread(t);
                Thread t4 = new Thread(t);
                //开启四个线程
                t1.start();
                t2.start();
                t3.start();
                t4.start();
        }
}
                post_newreply
相关帖子
多线程售票的例子解释多线程售票和生产消费者例子对比的问题关于override的一个小例子求一个比较直观的例子求解下售票是哪个地方出问题了一个简单例子引发的血案动态更改屏幕方向的简单例子(landscape与portrait)问一下timer timertask 定时器的具体应用场景,最好举个例子创建java文件列表例子中的问题死锁一个例子代码演示,面试中可能会遇到
分享到:  
QQ好友和群

腾讯微博

QQ空间
收藏
评分

分享
点评回复 编辑
生成文章
返回列表
发表回复

高级模式
BColorImageLinkQuoteCodeSmilies|

本版积分规则发表回复 将此回复同步到 腾讯微博 | 回帖后跳转到最后一页
关闭
站长推荐 5/5
六个offer轻松搞定的我
从一个毫无斗志的少年,到拿到8.5k offer的Java软件工程师的故事:初入黑马,气馁的我;初入黑马,气馁的我;投简历,高效的终极秘诀;离开黑马,斗志高昂的我。
查看 »
学员培训Java培训.Net培训关于我们公司简介联系方式招聘信息公司大事记帮助信息新手指南如何报名自学教程服务中心手机客户端下载客户端关注我们新浪微博腾讯微博手机扫一扫
举报|小黑屋|手机版|Archiver|黑马程序员IT技术论坛 ( 京ICP备08001421号-2 )   站长统计 360网站安全检测平台
GMT+8, 2014-3-26 20:20 , Processed in 0.171878 second(s), 40 queries .
Powered by Discuz! X3.1
Copyright © 2011-2014 Design: itheima.com

点评

我勒个去,这个copy的够牛...  发表于 2014-3-26 22:59
回复 使用道具 举报
  1. 简单的买票程序。多个窗口同时卖票

  2. 创建线程的第二种方式:实现Runnable接口

  3. 步骤:
  4. 1,定义类实现Runnable接口
  5. 2,覆盖Runnable接口中的run方法,
  6.         将线程要运行的代码存放在该run方法中。

  7. 3,通过Thread类建立线程对象。
  8. 4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
  9.         为什么要将Runnable接口的子类对象传递给Thread类的构造函数
  10.         因为,自定义的run方法所属的对象是Runnable接口的子类对象
  11.         所以要让线程去找到指定对象的run方法,就必须明确该run方法所属        

  12. 对象。

  13. 5,调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
  14. */
  15. //定义类实现Runnable接口
  16. class Test1 implements Runnable {
  17.         
  18.         private int piao = 100;
  19.         public void run() {
  20.                 while(true) {
  21.                         if(piao > 0) {
  22.                                 System.out.println(Thread.currentThread().getName() + "run..." + piao--);
  23.                         }
  24.                 }
  25.         }
  26.         
  27. }

  28. class ThreadTest1 {
  29.         public static void main(String[] args) {
  30.                 //创建Runnable接口的子类对象
  31.                 Test1 t = new Test1();
  32.                 //创建四个线程,把Runnable接口的子类对象当成实参传递给线程的构造函数
  33.                 Thread t1 = new Thread(t);
  34.                 Thread t2 = new Thread(t);
  35.                 Thread t3 = new Thread(t);
  36.                 Thread t4 = new Thread(t);
  37.                 //开启四个线程
  38.                 t1.start();
  39.                 t2.start();
  40.                 t3.start();
  41.                 t4.start();
  42.         }
  43. }
复制代码
你可以参考一下这个例子。加深一下理解

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
这个是需要同步的   谢谢
回复 使用道具 举报
火车票多线程,这个非常经典!!!!
回复 使用道具 举报
不错,,,,,,,,,,,,
回复 使用道具 举报
学习代码 发表于 2014-3-26 20:06
思路就是 车票有多少
用多少个窗口来卖,每个窗口看作一个线程,我做的时候是这样想的。 ...

旁观学习一下。
回复 使用道具 举报
和图书馆借书的线程是一样的不?学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马