java多线程同步模拟卖票过程的问题

本文介绍了Java中通过继承Thread类和实现Runnable接口两种方式来模拟多线程卖票的过程,探讨了线程同步问题。
摘要由CSDN通过智能技术生成

Java两种方法实现模拟卖票

第一种继承Thread类

public class TestThread extends Thread{
   
    //定义静态变量,为所有对象所共有
    private static int ticket = 50;
    //定义静态对象 object,保证在使用时synchronized获得对象的唯一性
    //不然main方法里new多个对象就有多个锁
    private static Object object = new Object();
    //定义线程名称
    public TestThread(String name) {
   
        super(name);
    }
    @Override
    public void run(){
   
        while (true){
   
            //这里不能用this,这里的this代表test1,test2,test3三个对象,锁不唯一
            //方式一
            //synchronized(object){
   
            //方式二
            //获取TestThread1的class对象,class 类名 = 类名.class,类名.class只会加载一次
            synchronized(TestThread1.class){
   
                 if(ticket > 0){
   
                    try 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值