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--+"个篮球");
    }
    }
    }
    }

  • 相关阅读:
    Javascript DMO 编程艺术
    PHPExcel
    MYSQL
    AJAX全接触
    正则表达式
    常用知识
    PHP 常用函数
    thinkphp5 公共函数的使用与调用
    thinkphp 使用phpExcel 导入和导出
    php 判断是pc端还是移动端
  • 原文地址:https://www.cnblogs.com/bfstone/p/6207112.html
Copyright © 2011-2022 走看看