线程基本使用——实现 Runnable接口

本文介绍了如何在Java中实现多线程的交叉执行,通过创建一个Runnable实现类Ceshi1,定义共享资源并使用synchronized关键字进行同步控制,确保线程安全地售卖票务。在main方法中启动两个线程,模拟杨洋和毛毛同时售卖票的过程,每秒更新一次票数,直至票数为0。
摘要由CSDN通过智能技术生成

本节要点:学会运用Thread,Runnable

练习(多线程交叉执行){

0.(图文解析)

在这里插入图片描述

 

1.先定义一个接口,定义一个量值(执行几次),其次定义一个集合存入数据

2.获取数据当前的名号字,再进行循环

3.判断是否为0,不为0那么就执行输出(设置每秒出现一位数的变换)

public class Ceshi1 implements Runnable {
   //定义一个变量
    private  int ok=10;
//定义一个集合
    Object ass=new Object();
    @Override
    public void run() {
        //获取当前的属性名
        String name = Thread.currentThread().getName();
        //while循环
        while (true){
            //判断是否为0,把数据放到synchronized里面
          synchronized (ass){
              if(ok>0){
                  System.out.println(name+"正在售卖"+(ok)+"张票");
                  try{
                      Thread.sleep(1000);
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
                  ok--;
              }else{
                  break;
              }
          }
        }
    }
}

4.如果大于0时,减少1,否者结束

5.实现功能(调用Ceshi1 ),解释:  ass== Thread.currentThread().getName();

 public static void main(String[] args) {
        Ceshi1 ass=new Ceshi1();
        Thread t1=new Thread(ass,"杨洋");
        Thread t2=new Thread(ass,"毛毛");
        t1.start();
        t2.start();
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值