一个Java线程小例子(仿火车票售卖)

public class MyThread extends Thread{
    private static int ticket=100;
    public void run(){
        for(int i=0;i<50;i++)
            if(ticket>0)
                System.out.println(Thread.currentThread().getName()+"正在卖第"+(ticket--)+"张票");
    }

    //main函数是一个主线程
    public static void main(String[] args) {
        MyThread mt=new MyThread();
        Thread m1=new Thread(mt,"window1");
        Thread m2=new Thread(mt,"window2");
        Thread m3=new Thread(mt,"window3");
        m1.start();
        m2.start();
        m3.start();
    }
}

模仿火车票售卖,不同的窗口售卖同一种票,不能出现两个窗口卖出同一张票。

时间: 2024-10-06 09:53:59

一个Java线程小例子(仿火车票售卖)的相关文章

java反射小例子

package com.txwsqk.reflect; public class Car { private String brand; private String color; private int maxspeed; public Car(){} public Car(String brand, String color, int maxspeed){ this.brand = brand; this.color = color; this.maxspeed = maxspeed; }

一个简单的小例子让你明白c#中的委托-终于懂了!

模拟主持人发布一个问题,由多个嘉宾来回答这个问题. 分析:从需求中抽出Host (主持人) 类和Guests (嘉宾) 类. 作为问题的发布者,Host不知道问题如何解答.因此它只能发布这个事件,将事件委托给多个嘉宾去处理.因此在Host 类定义事件,在Guests类中定义事件的响应方法.通过多番委托的"+="将响应方法添加到事件列表中,最终 Host 类将触发这个事件.实现过程如下: 代码其实很少下面贴出来所有代码: QuestionArgs.cs view plaincopy to

JAVA线程池例子

用途及用法 网络请求通常有两种形式:第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等.另一种形式是请求频繁,但是连接上以后读/写很少量的数据就断开连接.考虑到服务的并发问题,如果每个请求来到以后服务都为它启动一个线程,那么这对服务的资源可能会造成很大的浪费,特别是第二种情况.因为通常情况下,创建线程是需要一定的耗时的,设这个时间为T1,而连接后读/写服务的时间为T2,当T1>>T2时,我们就应当考虑一种策略或者机制来控制,使得服务对

一个Java恶搞小程序

运用Java程序控制某个应用程序的运行(以网易云音乐为例),步骤如下 1.建立bat文件分别是start.bat(控制程序的运行)和kill.bat(控制程序的结束): start.bat 的内容如下,功能是运行程序: cmd /c start F:\\00网易云音乐\\CloudMusic\\cloudmusic.exe exit 具体情况可以视具体情况改写你的应用的安装路径即可 kill.bat的内容如下,功能是结束程序进程: taskkill /f /im "cloudmusic.exe&

java Dom小例子

仅仅是为了总结与学习. XML文件在我们的开发项目中经常使用,下面写了DOM解析的小例子. DomTestFile.xml文件如下: <?xml version="1.0" encoding="utf-8"?> <MenuContainer> <menu order="1.0" menuname="测试1" description="描述1"> <menu orde

1个争用资源的简单线程小例子

main()本身就是一线程,现在在main内部再创建另一个线程, 例子只是简单的在两个线程中打印了一下TID和PID以及获取本身PID,当然两个线程的TID是一样的,PID是不一样的. 这里主要说的是:两个线程一起运行,屏幕上显示的各线程的内容,因为一起争用资源,造成了打印信息内容的重叠. 代码: #include <iostream> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #i

分享一个java线程专栏

专栏 : java线程基础 转载自 http://blog.csdn.net/column/details/yinwenjiethread.html 专栏内容: 1.线程基础:线程(1)--操作系统和线程原理 2.线程基础:线程(2)--JAVA中的基本线程操作(上) 3. 线程基础:线程(3)--JAVA中的基本线程操作(中) 4.线程基础:线程(4)--JAVA中的基本线程操作(下) 5.线程基础:线程池(5)--基本使用(上) 6.线程基础:线程池(6)--基本使用(中) 7.线程基础:线

Java调试小例子(如何使用F5和F6)

如果一个类有3个方法,就在3个方法的前面设置断点,总共就3个断点,然后进入Debug调试, 一直按F6(Step Over)他会在方法那里直接进入方法而不需要你按F5(Step  Into) 或者你只是在第一个方法那里设置了一个断点,那么在调试时要进入方法就需要按F5(Step Into)来进入方法. package args参数问题; /* * 思考题1:看程序写结果,然后分析为什么是这个样子的.并画图讲解.最后总结Java中参数传递规律. * Java中的参数传递问题: 基本类型:形式参数的

第一个java画板小项目代码,最后面有问题哦,欢迎交流。

一.主窗体代码 package com.mr.draw;//类所在的包名 import javax.swing.JFrame; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapte