博客
关于我
java线程(4)——使用多个线程操作同一个对象(买票的例子)
阅读量:323 次
发布时间:2019-03-04

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

买票的例子

1. 实现Runnable接口的类

public class TestThread4 implements Runnable{       //票数    private int ticket = 10;        @Override    public void run() {           while (true){               if (ticket <= 0){                   break;            }            //模拟延时            try {                   Thread.sleep(200);            } catch (InterruptedException e) {                   e.printStackTrace();            }            System.out.println(Thread.currentThread().getName()+"-->拿到了第" + ticket-- +"张票");        }    }}

2. mian方法(主线程)

public static void main(String[] args) {           TestThread4 testThread4 = new TestThread4();        new Thread(testThread4,"小明").start();        new Thread(testThread4,"老师").start();        new Thread(testThread4,"黄牛党").start();    }

3. 执行结果

在这里插入图片描述

4. 不懂的方法和运行中的问题

  1. Thread.sleep(200);让该线程停止200ms。
  2. new Thread(testThread4,“小明”); 构造方法,第一个参数传入start方法,第二个参数传入name属性。
  3. Thread.currentThread().getName();获取正在运行的线程的name属性。
  4. 运行结果中,有些票被多个线程所获取,这是线程并发问题,之后会进行讲解

转载地址:http://jieq.baihongyu.com/

你可能感兴趣的文章
MySQL高级-视图
查看>>
MySQL:判断逗号分隔的字符串中是否包含某个字符串
查看>>
Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
查看>>
Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Nacos配置中心集群原理及源码分析
查看>>
nacos配置自动刷新源码解析
查看>>
Nacos集群搭建
查看>>
nacos集群搭建
查看>>
Navicat for MySQL 查看BLOB字段内容
查看>>
Neo4j电影关系图Cypher
查看>>
Neo4j的安装与使用
查看>>
Neo4j(2):环境搭建
查看>>
Neo私链
查看>>
nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
查看>>
Nessus漏洞扫描教程之配置Nessus
查看>>
Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
查看>>
NetApp凭借领先的混合云数据与服务把握数字化转型机遇
查看>>
NetBeans IDE8.0需要JDK1.7及以上版本
查看>>
netcat的端口转发功能的实现
查看>>
netfilter应用场景
查看>>