zoukankan      html  css  js  c++  java
  • 线程

    下面的程序是建立三个线程,每个线程调用的是同一个BallPickUp对象中的run方法,访问的是同一个balls的实例,所有三个线程共捡了100个球。

    但是并不明白程序运行的流程是怎样的,三个线程是如何交替执行的

    package renwu1;

    public class PEClass {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    BallPickUp bp=new BallPickUp();
    Thread p1=new Thread(bp);
    Thread p2=new Thread(bp);
    Thread p3=new Thread(bp);
    p1.start();
    p2.start();
    p3.start();

    try{
    p1.join();
    p2.join();
    p3.join();
    }catch(InterruptedException e){
    e.printStackTrace();
    }
    System.out.println("捡完球,去吃饭");
    }
    }

    package renwu1;

    public class BallPickUp implements Runnable {
    private int balls=100;

    @Override
    public void run() {
    // TODO Auto-generated method stub
    for(int i=0;i<100;i++){
    try{
    Thread.sleep(1000);
    }catch(InterruptedException e){
    e.printStackTrace();
    }
    if(this.balls>0){
    System.out.println(Thread.currentThread().getName()+
    "同学捡了第"+this.balls--+"个篮球");
    }
    }
    }
    }

  • 相关阅读:
    Django_rest_framework
    Django之FBV / CBV和中间件
    数据库之MySQL补充
    数据库之Python操作MySQL
    数据库之MySQL进阶
    数据库之初识MySQL
    2-3、配置Filebeat
    2-2、安装Filebeat
    2-1、FileBeat入门
    5、Filebeat工作原理
  • 原文地址:https://www.cnblogs.com/bfstone/p/6207112.html
Copyright © 2011-2022 走看看