博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程学习的几个实例
阅读量:4982 次
发布时间:2019-06-12

本文共 2652 字,大约阅读时间需要 8 分钟。

1.售票系统

public class DemoTest {    public static void main(String args[]){        ThreadTest mtTest= new ThreadTest();        new Thread(mtTest).start();        new Thread(mtTest).start();        new Thread(mtTest).start();    }        public boolean isNumber(String str){        char[] no=str.toCharArray();        for(int i=0;i
='0' && no[i]<='9')){ return false; } } return true; }}class ThreadTest implements Runnable{ int tickets=100; @Override public void run() { // TODO Auto-generated method stub while(true){ saleTicket(); } } public synchronized void saleTicket(){ synchronized (this) { if(tickets>0){ try { Thread.sleep(100); System.out.println(Thread.currentThread().getName()+"----"+"ticket"+"--->"+tickets--); } catch (Exception e) { // TODO: handle exception } } } }}

 

2.存钱

public class ThreadTest_1 {    public static void main(String args[]){        ThreadDemo mtDemo=new ThreadDemo();        new Thread(mtDemo,"小明").start();  //两个人去存款,一共存了6次,共600元        new Thread(mtDemo,"小红").start();    }}class ThreadDemo implements Runnable{    int account=0;    @Override   //每个人存3次钱,一次存100    public void run() {        // TODO Auto-generated method stub        for(int i=0;i<10;i++){            saveMoney(100);        }    }            public synchronized void saveMoney(int money){        account = account+money;         try {            Thread.sleep(100);            System.out.println(Thread.currentThread().getName()+"存入100元后,现在账户余额为"+account);        } catch (InterruptedException e) {            // TODO: handle exception        }    }}

 

3.火车过山洞

public class ThreadTest_2 {    public static void main(String[] args) {        // TODO Auto-generated method stub        ThreadDemo_1 mtDemo=new ThreadDemo_1();        new Thread(mtDemo,"火车A").start();        new Thread(mtDemo,"火车B").start();        new Thread(mtDemo,"火车C").start();        new Thread(mtDemo,"火车D").start();        new Thread(mtDemo,"火车E").start();    }}class ThreadDemo_1 implements Runnable{    @Override    public void run() {                // TODO Auto-generated method stub            throughHill();    }        public synchronized void throughHill(){        try {            Thread.sleep(1000);            System.out.println("此时穿过山洞的火车是:"+Thread.currentThread().getName());        } catch (InterruptedException e) {            // TODO: handle exception        }    }}

 

转载于:https://www.cnblogs.com/redick/p/6381057.html

你可能感兴趣的文章
家庭记账本六
查看>>
离钱越近,才能赚钱越‘稳’
查看>>
mapping.mapper.xml文件中的标签详解
查看>>
软件工程——理论、方法与实践⑦
查看>>
商品评论
查看>>
【转】Android 组件系列-----Activity保存状态
查看>>
批处理实现多线程执行命令列表文件
查看>>
跟牛牛老师学习python自动化的第六天
查看>>
利用Flume将本地文件数据中收集到HDFS
查看>>
html5的优缺点
查看>>
Vim 加 Gmail 变身 Vmail
查看>>
P1294 高手去散步
查看>>
一次谷歌面试趣事
查看>>
(5) Orchard 开发之 Localization and NullLocalizer
查看>>
分类算法(1)--KNN
查看>>
每日记载内容总结3
查看>>
ajax等待请求
查看>>
Java学习之equals和hashcode的关系
查看>>
一页纸商业计划书 (Business Plan) 模板(转载)
查看>>
什么是html
查看>>