吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2825|回复: 9
收起左侧

[Java 转载] Java利用线程实现火车售票模式

[复制链接]
Raix 发表于 2019-11-26 23:27
-------------------------------官方大大,如果有误,一定提醒我或者帮我修改下噻,不要删帖不要删帖-------------
第三贴,今晚写个利用线程实现火车票售票模式,纯当小白学习及老哥们复习
我觉得。。写上项目名+包名+类名是不是太基础了,,,


好趴,还是写上吧!!!


项目名:Thread
--------------www.threadRaix.com
--------------------testTrain.java

----------------------start------------------------
[Java] 纯文本查看 复制代码
package www.threadRaix.com

import java.util.concurrtent.locks.ReentrantLock;

class WindowsTest implements Runnable{
          private int num = 1;    //次数

         //显示加锁,效率高!
         ReentrantLock rt = new ReentrantLock();
        //同步代码块,加监视器,监视器是一个共享的对象
        Object obj = new Object();
       
        //启动线程,自动调用并重写run方法
        public  void run(){
                while(true){
                       if(this.num > 0){
                               try{
                               //间隔1秒
                               Thread.sleep(100);
                               }catch(InterruptedException e){  //本来想直接写Exception,解决一切问题,,但是为了让新手知道,如果报错就知道是哪里
                                         e.printStackTrace();
                               }
                       }

                       synchronized(obj){
                                if(this.num <= 100){
                                       System.out.println(Thread.currentThread().getName() + "窗口正在出售【" + num++ +"】号票!");
                                }else{
                                       break;
                                }
                       }
                }
        }
}


public class testTrain(){
         public static void mian(String[] args){
              WindowsTest threadOne     = new WinwodsTest();
              WindowsTest threadTwo     = new WindowsTest();
              WindowsTest threadThree   = new WindowsTest(); 

              new Thread(threadOne,   "窗口一").start();
              new Thread(threadTwo,   "窗口二").start();
              new Thread(threadThree,"窗口三").start();
         }
}



--------------------------------教程结束,基本关键部分代码都写了注释----------------------------------------------------------


--------------------------------本代码纯属手敲,复制粘贴锻炼不大,因为我也是新手之一,以后就做个代码搬运工惹--------


--------------------------------大佬勿喷,,暴躁老哥欢迎欢迎,我就喜欢这样的老哥,嘿嘿嘿---------------------------------
--------------------------------会的就当作复习一遍咯,嘿嘿嘿嘿,新手可以模范试试哈-----------------------

--------------------------------官方大大,如果有误,一定提醒我或者帮我修改下噻,不要删帖不要删帖---------------













免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
joneqm + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Raix 发表于 2019-11-27 10:07
mj2013ly 发表于 2019-11-27 08:36
ReentrantLock rt这个有何意义,整个程序都没调用过

忘记注释了,,,,
Yoona520 发表于 2019-11-27 00:02
幻象 发表于 2019-11-27 07:51
mj2013ly 发表于 2019-11-27 08:36
ReentrantLock rt这个有何意义,整个程序都没调用过
heyong 发表于 2019-11-27 09:16
可以加个好友一起学习下吗 我在学JAVA
无限苦肉盖神 发表于 2019-11-27 10:58
黑马java教学就有这个
今天发布了吗 发表于 2019-12-5 20:39

         ReentrantLock rt = new ReentrantLock();
开头的这段代码的作用是?
BlueMoonWolf 发表于 2019-12-5 23:20
兄弟你这里的写法有问题。
synchronized 的是比较老的j2ee实现的内置的锁,比较重型的。。你用了ReentrantLock锁,就没有必要用那个了。。。直接用这个手工来开关ReentrantLock锁就行了。。


 楼主| Raix 发表于 2019-12-6 21:45
BlueMoonWolf 发表于 2019-12-5 23:20
兄弟你这里的写法有问题。
synchronized 的是比较老的j2ee实现的内置的锁,比较重型的。。你用了Reentrant ...

知道惹 知道惹
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 09:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表