大数据Java基础第八天作业

第一题:
class Car extends Thread{
    private String name;
    private Locked lock;
    public Car(String name,Locked lock){
        this.name = name;
        this.lock = lock;
    }

    public void run(){
        synchronized(lock){
            System.out.println("车号:" + name + ",开始进入隧道...");
            for(int i=1;i<=10;i++){
                try{
                    System.out.println("进入隧道第" + i + "秒");
                    Thread.sleep(1000*1);    
                }catch(Exception e){};
            }
            System.out.println("车号:"+ name + ",结束进入隧道...");
        }
    }
}

class Locked{
    //空锁...
}

class CarDemo{
    public static void main(String[] args){
        Locked lock = new Locked();

        Car car001 = new Car("car001",lock);
        Car car002 = new Car("car002",lock);
        Car car003 = new Car("car003",lock);
        Car car004 = new Car("car004",lock);
        Car car005 = new Car("car005",lock);
    
        car001.start();
        car002.start();
        car003.start();
        car004.start();
        car005.start();
    }
}
第二题:
import java.util.ArrayList;
import java.util.List;

class Bee extends Thread{
    private String name;
    private List<Integer> list;
    private int i = 1;
    public Bee(String name,List<Integer> list){
        this.name = name;
        this.list = list;
    }
    public void run(){
        while(true){
            synchronized(list){                
                if(list.size() >= 10){
                    try{
                        list.wait();
                    }catch(Exception e){};
                }else{
                    try{
                        Thread.sleep(1000);
                    }catch(Exception e){};
                    System.out.println("蜜蜂号:" + name + ",生产第" + i + "次蜂蜜!");
                    list.add(new Integer(i));
                    i ++;
                    list.notify();
                    
                }
            }
        }        
    }
}

class Bear extends Thread{
    private String name;
    private List<Integer> list;
    private int total = 1;
    private Locked lock;
    public Bear(String name,List<Integer> list){
        this.name = name;
        this.list = list;
    }
    public void run(){
        while(true){
            synchronized(list){
                if(list.size() >= 10){
                    System.out.println("熊消费:" + total + "次!");
                    total ++;
                    list.removeAll(list);
                    try{
                        Thread.sleep(2000);
                    }catch(Exception e){};
                    list.notify();
                }else{
                    try{
                        list.wait();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

class ProductDemo{
    public static void main(String[] args){
        List<Integer> list = new ArrayList<Integer>();

        Bee bee001 = new Bee("001",list);
        Bee bee002 = new Bee("002",list);
        Bee bee003 = new Bee("003",list);
        bee001.start();
        bee002.start();
        bee003.start();

        Bear bear = new Bear("001",list);
        bear.start();
    }
}
时间: 2024-10-05 05:54:10

大数据Java基础第八天作业的相关文章

大数据Java基础第十二天作业

第一题:HashMap内部实现原理 HashMap存的是key => value 对的集合,每一对就是一个entry(条目),key和value存的都是对象的引用.key不能存重复的值,key的集合是keySet().value可以存重复的值,value的集合是values(). HashMap底层用的是hash(散列)算法,使的在map中查询值速度快效率高. HashMap判断对象是否相等,先判断hashcode是否相等,再判断equals值是否相等.对象相等代码:(this.hashcode

大数据Java基础第九天作业

第一题: /**  * 1.盒子最大容量120g,(当前蜂蜜量 >= 最大容量时,则蜜蜂不往里倒蜂蜜,发送通知,在消息队列等待)  * 2.小熊每一次吃50g,(当盒子蜂蜜量 < 50则不吃,发送通知,在消息队列等待)  * 3.蜜蜂自己的口袋最大量80g,蜜蜂每1s生产6g蜂蜜,当口袋容量 >= 50g时则把所有容量倒入小熊的盒子.  */ //蜜蜂类 class Bee extends Thread{     public static final int BAG_MAX = 80;

大数据Java基础第十八天作业

第一题:udp传输屏幕广播(低于64k). import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.net.DatagramPacket; import java.net.DatagramSocket; class ClientDemo{     public static void main(String[] args) throws Exception{  

大数据Java基础第二十天作业

第一题:多线程下载,显示下载进度条.(暂停功能个和断点续传待开发). import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JButton; import javax.swing.JProgressBar; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;

大数据Java基础第二十一天作业

第一题:使用PreparedStament对MySql的CRUD操作. CREATE TABLE `edu_user` (   `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',   `user_name` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名',   `user_age` tinyint(3) unsigned NOT NULL DEFAULT '0' COMM

从0开始学大数据-Java基础-三元运算符/键盘录入(4)

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop.Spark.Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习. 上一节了解Java运算符,其中三元运算符没有做讲解,本节我们开始学习Java基础-三元运算符/键盘录入,将会围绕以下几个知识点进行展开学习: 三元运算符 键盘录入数据 一.运算符 1.三元运算符 接着上一节的话题运算符,本节讲三元运算符,在讲三元运算符之前,可能会有很多朋友会问,是不是有一元运

从零开始学大数据-Java基础-switch语句(6)

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop.Spark.Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习. 上一节学习了流程控制语句,本节学习switch语句. 开始之前,我们先看一下上节的练习题. 一.练习题 if语句格式的练习: 1.获取两个数据中较大的值 2.判断一个数据是奇数还是偶数,并输出 程序执行结果如下: 二.switch语句 流程控制语句的选择结构 1 选择结构(也被称为分支结构)

【全集】大数据Java基础

课程介绍 本课程是由猎豹移动大数据架构师,根据Java在公司大数据开发中的实际应用,精心设计和打磨的大数据必备Java课程.通过本课程的学习大数据新手能够少走弯路,以较短的时间系统掌握大数据开发必备语言Java,为后续大数据课程的学习奠定了坚实的语言基础. 适用人群 1.想学大数据没有语言基础的学员 2.想学大数据没有Java语言基础的学员 3.转行想学大数据的学员 4.了解Java,大数据Java知识体系不完整的学员 课程视频下载地址(视频完整,无加密) 链接:https://pan.baid

从0开始学大数据-Java基础语法(2)

我们从零开始学习大数据技术,从java基础,到Linux技术涉猎,再深入到大数据技术的Hadoop.Spark.Storm技术,最后到大数据企业平台的搭建,层层递进,由点到面!希望技术大牛能过来指导学习. 上一节了解Java的发展史和基本操作,本节我们开始学习Java语言的基础语法,将会围绕以下几个知识点进行展开学习: 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 PS:本节先学习前面4个知识点. 1.关键字 关键字的概述 · 被Java语言赋予特定含义的单词 关键字的特点 · 组