博客
关于我
java线程(4)——使用多个线程操作同一个对象(买票的例子)
阅读量:320 次
发布时间: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/

你可能感兴趣的文章
二叉堆的c++模板类实现
查看>>
C语言实现dijkstra(adjacence matrix)
查看>>
C语言学习从初级到精通的疯狂实战教程-徐新帅-专题视频课程
查看>>
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
查看>>
NAT工作原理
查看>>
Processes, threads and goroutines
查看>>
c++中的10种常见继承
查看>>
Vue学习—深入剖析渲染函数
查看>>
Vue学习—深入剖析函数式组件
查看>>
简单Makefile的编写
查看>>
使用BAT批处理 匹配查找指定文件夹,并在当文件夹下创建空文件
查看>>
wxpython的Hello,World代码探索
查看>>
【数字图像处理】OpenCV3 学习笔记
查看>>
【单片机开发】智能小车工程(经验总结)
查看>>
【单片机开发】基于stm32的掌上游戏机设计 (项目规划)
查看>>
KeepAlived介绍、配置示例、KeepAlived配置IPVS、调用脚本进行监控
查看>>
Scala集合-数组、元组
查看>>
04 程序流程控制
查看>>
java并发编程(1)
查看>>
C++&&STL
查看>>