Android 多线程实现异步执行demo,线程池使用demo

    while (true) {// 循环是指线程不停的去卖票

        // 当操作的是共享数据时,用同步代码块进行包围起来,这样在执行时,只能有一个线程执行同步代码块里面的内容

        synchronized (this) {

            if (ticket > 0) {



                // 不要在同步代码块里面sleep,作用只是自已不执行,也不让线程执行

                System.out.println("lgq"+Thread.currentThread().getName()

                        + " 卖出 第 " + (20 - ticket + 1) + " 张票");

                ticket--;



            } else {

                break;

            }

        }

        // 所以把sleep放到同步代码块的外面,这样卖完一张票就休息一会,让其他线程再卖,这样所有的线程都可以卖票

        try {

            Thread.sleep(200);

        } catch (Exception ex) {

        }

    }

}

}




2、创建多线程,启动多线程



AutoSaleTicket ticket = new AutoSaleTicket();

Thread t1 = new Thread(ticket, “11东城代售”);

Thread t2 = new Thread(ticket, “22西城代售”);

Thread t3 = new Thread(ticket, “33朝阳代售”);

Thread t4 = new Thread(ticket, “44海淀代售”);

t1.start();

t2.start();

t3.start();

t4.start();




3、多线程同步执行结果



03-22 15:40:43.167 9967-10272/com.tianxin.httpheader I/System.out: lgq11东城代售 卖出 第 1 张票  

03-22 15:40:43.167 9967-10274/com.tianxin.httpheader I/System.out: lgq33朝阳代售 卖出 第 2 张票  

03-22 15:40:43.167 9967-10275/com.tianxin.httpheader I/System.out: lgq44海淀代售 卖出 第 3 张票  

03-22 15:40:43.167 9967-10273/com.tianxin.httpheader I/System.out: lgq22西城代售 卖出 第 4 张票  

03-22 15:40:43.368 9967-10272/com.tianxin.httpheader I/System.out: lgq11东城代售 卖出 第 5 张票  

03-22 15:40:43.370 9967-10273/com.tianxin.httpheader I/System.out: lgq22西城代售 卖出 第 6 张票  

03-22 15:40:43.370 9967-10274/com.tianxin.httpheader I/System.out: lgq33朝阳代售 卖出 第 7 张票  

03-22 15:40:43.371 9967-10275/com.tianxin.httpheader I/System.out: lgq44海淀代售 卖出 第 8 张票  

03-22 15:40:43.570 9967-10273/com.tianxin.httpheader I/System.out: lgq22西城代售 卖出 第 9 张票  

03-22 15:40:43.571 9967-10275/com.tianxin.httpheader I/System.out: lgq44海淀代售 卖出 第 10 张票  

03-22 15:40:43.572 9967-10272/com.tianxin.httpheader I/System.out: lgq11东城代售 卖出 第 11 张票  

03-22 15:40:43.572 9967-10274/com.tianxin.httpheader I/System.out: lgq33朝阳代售 卖出 第 12 张票  

03-22 15:40:43.771 9967-10273/com.tianxin.httpheader I/System.out: lgq22西城代售 卖出 第 13 张票  

03-22 15:40:43.772 9967-10275/com.tianxin.httpheader I/System.out: lgq44海淀代售 卖出 第 14 张票  

03-22 15:40:43.773 9967-10272/com.tianxin.httpheader I/System.out: lgq11东城代售 卖出 第 15 张票  

03-22 15:40:43.773 9967-10274/com.tianxin.httpheader I/System.out: lgq33朝阳代售 卖出 第 16 张票  

03-22 15:40:43.973 9967-10273/com.tianxin.httpheader I/System.out: lgq22西城代售 卖出 第 17 张票  

03-22 15:40:43.973 9967-10275/com.tianxin.httpheader I/System.out: lgq44海淀代售 卖出 第 18 张票  

03-22 15:40:43.974 9967-10272/com.tianxin.httpheader I/System.out: lgq11东城代售 卖出 第 19 张票  

03-22 15:40:43.974 9967-10274/com.tianxin.httpheader I/System.out: lgq33朝阳代售 卖出 第 20 张票



方法2线程池使用:

=========



创建



class MyTask implements Runnable {

private int taskNum;



public MyTask(int num) {

最后

在此为大家准备了四节优质的Android高级进阶视频:

架构师项目实战——全球首批Android开发者对Android架构的见解

附相关架构及资料

image.png

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

-VliMrqMa-1719496126481)]

往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值