Thread多线程-(最容易被问到的面试题)
1.一个商品
2.一个工厂 包含仓库 、出售 生产的方法
3.两个生产者两个销售者商品数量在1-100之间徘徊
生产商品(面包)类
public class MianBao {private String name;//名称private String color;//颜色private double price;//价格public MianBao() {// TODO Auto-generated constructor stub}public MianBao(String name, String color, double price) {super();this.name = name;this.color = color;this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "MianBao [name=" + name + ", color=" + color + ", price=" + price + "]";}}
工厂类
public class GongChang {//定义一个仓库 专门放面包的工厂Vector<MianBao> vec=new Vector<>();/*** 生产面包的方法* @param mb 对象* @throws Exception 父类异常*/public synchronized void addMianBao(MianBao mb) throws Exception {if(vec.size()>99) {//库存大于99就挂起this.wait();}else {//小于等于99//继续生产vec.add(mb);this.notifyAll();//唤醒挂起System.out.println(Thread.currentThread().getName()+"生产第"+vec.size()+"个面包");}}/*** 销售的方法* @throws Exception 父类异常*/public synchronized void deleteMianBao() throws Exception {if(vec.size()<1) {//库存面包小于1就挂起this.wait();}else {vec.remove(0);//否则就继续销售this.notifyAll();//唤醒挂起System.out.println(Thread.currentThread().getName()+"销售第"+vec.size()+"个面包");}}
生产者类
public class ShengChan implements Runnable{//定义一个仓库private GongChang gc;public ShengChan(GongChang gc) {this.gc=gc;//赋值}@Overridepublic void run() {while(true) {try {gc.addMianBao(new MianBao("哈士奇", "黄色", 99.89));} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
销售者类
public class XiaoShou implements Runnable{//定义一个仓库private GongChang gc;public XiaoShou(GongChang gc) {this.gc=gc;}@Overridepublic void run() {while(true) {try {gc.deleteMianBao();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
测试类
public class Test {public static void main(String[] args) {//一个工厂GongChang gc=new GongChang();//销售者XiaoShou xs=new XiaoShou(gc);new Thread(xs).start();new Thread(xs).start();//生产者ShengChan sc=new ShengChan(gc);new Thread(sc).start();new Thread(sc).start();}}
Thread多线程-(最容易被问到的面试题)相关推荐
- Python threading Thread多线程的使用方法
Python threading Thread多线程的使用方法 参考资料:<Python 多线程>http://www.runoob.com/python/python-multithre ...
- C++11新特性以及std::thread多线程编程
一 .C++11新特性 1. auto 类型推导 1.1 当=号右边的表达式是一个引用类型时,auto会把引用抛弃,直接推导出原始类型: 1.2 当=号右边的表达式带有const属性时,auto不会使 ...
- ros中使用boost::thread多线程boost::bind绑定参数,多线程发送topic
ros中使用boost::thread多线程boost::bind绑定参数 #include <boost/thread/thread.hpp> bool running;//虚拟墙 vo ...
- 偷偷学习Java,然后惊艳所有人 JavaSE总结 - thread多线程
零基础学Java,肝了bilibili的6百多集JavaSE教程传送门的学习笔记!!! 下面博客分为三部分: ① thread多线程的要点(想快速了解thread多线程的小伙伴选择,内容较多,快也快不 ...
- Java程序员开发三年,去网易社招,竟被问到这些面试题
本文转载自:Java程序员开发三年,去网易社招,竟被问到这些面试题 前言 前几天偶遇老同学,聊了聊工作:老同学和我分享了这次网易社招的面试题:文中篇幅有限,就和大家分享这么多:更多Java后端开发面试 ...
- java 实体类包含list 怎么取值_舅舅是面试官,偷偷告诉你们面试官最爱问的Java面试题...
2015 年,因为工作岗位的变动,舅舅开始负责给集团招聘一些技术人员,出于对公司的负责,也为了更好的胜任技术经理的职位,在面试的这件事上,舅舅做了大量的"功课",首先研究了几乎所有 ...
- 面试官都会问的Mybatis面试题,你会这样回答吗?
一.概述 面试,难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:"面试 ...
- 最常问的MySQL面试题集合
除了基础题部分,本文还收集整理的MySQL面试题还包括如下知识点或题型: MySQL高性能索引 SQL语句 MySQL查询优化 MySQL高扩展高可用 MySQL安全性 问题1:char.varcha ...
- 企业面试题|最常问的MySQL面试题集合(二)
MySQL的关联查询语句 六种关联查询 交叉连接(CROSS JOIN) 内连接(INNER JOIN) 外连接(LEFT JOIN/RIGHT JOIN) 联合查询(UNION与UNION ALL) ...
- 企业面试题|最常问的MySQL面试题集合(一)
问题1:char.varchar的区别是什么? varchar是变长而char的长度是固定的.如果你的内容是固定大小的,你会得到更好的性能. 问题2: TRUNCATE和DELETE的区别是什么? D ...
最新文章
- Redis之七种武器
- sphinx+coreseek创建中文分词索引
- mongodb 查询 mysql_MongoDB 基本查询使用
- NFS的简单配置和使用
- python旋转矩阵_python实现回旋矩阵方式(旋转矩阵)
- 只运行一个实例的方法
- 如何使一维数组一行一行的输出成二维数组的格式
- 小程序 省市区县三级联动选择器(caseCade)
- POJ-1651 Multiplication Puzzle 矩阵连乘问题(区间dp)
- 2023年中国AI论文影响力超越美国?
- 面向对象7:项目二的总结
- Aittit rpc的实现协议 JSON-RPC XML-RPC . Ws协议webservice 目录 1. XML-RPC协议	1 1.1. JSON-RPC远程调用协议 - CieloSun
- 内存颗粒和闪存颗粒的区别_slc、mlc、tlc闪存芯片颗粒哪个好?有什么区别?
- 医保结余7600亿匮
- python3使用staf问题_python调用staf自动化框架的方法
- java四大名著知乎_《西游记》是否被高估了?四大名著该如何排名?
- 使用pandas对excel表格筛选
- Ubuntu下编译VeraCrypt
- 使用多线程实现多客户端的连接(通过Socket实现TCP编程)
- 腾讯云服务器如何重装系统
热门文章
- C++将一个cpp文件中的变量应用到另一个cpp文件中
- 书名带冒号_书名号、引号、括号和冒号如何套用
- 哥德巴赫猜想python
- 心知天气api PHP,php调用心知天气API,实现微信自动回复
- 【windows】windows家庭版调出本地组策略编辑器的方法
- 最新电脑cpu性能排行服务器,服务器cpu性能排行,详细教您服务器cpu性能排行
- 百度大脑iOCR助力财务报销智能化,省时省力
- 网易云音乐、微博成新规后首批IPO企业 招股书披露数据安全风险
- python高级进阶_20_进程之间的通信之queue(Poo演示)
- 小白刷LeeCode(算法篇)7