`

java多线程的一道面试题

 
阅读更多

题目如下:

       子线程循环10次,然后主线程循环100次。如此往返,循环50次。

 

package TreaditionThread;

public class TreadtionnalThreadMian {
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		final  Business business = new Business();
		new Thread(new Runnable(){

			public void run() {
				// TODO Auto-generated method stub
				for (int i = 0; i < 50; i++) {
					business.sub(i);
				}
			}
			
		}).start();
		
		for (int i = 0; i < 50; i++) {
			business.main(i);
		}
	}
}
class Business {
	private boolean bShuldBusi = true;
	
	public synchronized void sub(int i){
		while(!bShuldBusi){
			try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		for (int j = 0; j < 10; j++) {
			System.out.println("sub Thread"+j+" loop in "+i);
		}
		bShuldBusi = false;
		this.notify();
	}
	public synchronized void main(int i){
		while(bShuldBusi){
			try {
				this.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		for (int j = 0; j < 100; j++) {
			System.out.println("main Thread"+j+" loop in "+i);
		}
		bShuldBusi = true;
		this.notify();
	}
}

 

分享到:
评论

相关推荐

    Java 面试题 Java 面试题

    根据给定的文件内容,我们可以总结出一系列与Java面试相关的知识点。下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法...

    Java高级面试题汇总及答案(2022年Java面试题及答案大全)

    这是一道经典的Java面试题。解决这个问题需要了解Java的内存管理机制,包括FULL GC的触发条件、Perm Gen的设置、System.gc()方法的调用等。 Java集合框架 3. Java集合框架是Java语言中的一种重要概念,它提供了...

    答复: 一道经典线程面试题的4种解法

    标题中的“答复: 一道经典线程面试题的4种解法”暗示了这是一个关于多线程编程的问题,通常在面试中出现,用于评估候选人的并发处理能力。在这个问题中,可能涉及到同步、线程安全、锁机制等关键概念。 在Java中,...

    Java程序员面试题

    Java程序员在面试中可能会遇到各种各样的问题,涵盖了语言基础、类与对象、多线程、集合框架、异常处理、IO流、网络编程等多个方面。以下是对这些面试题的详细解析: 1. 题目涉及到字符串是不可变对象的概念。在`...

    Java 133道面试题(包括答案 JAVA面试必备)

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在求职面试中脱颖而出,了解并掌握Java的核心概念、...对于每一道面试题,深入理解并能举一反三,将是成为一名优秀Java开发者的关键。

    2020美团面试真题解析

    本文将对美团2020年面试真题进行详细的解析,涵盖了Android面试的方方面面,包括数据结构、算法、Android基础知识、多线程编程、网络通信、设计模式、Java基础知识等方面。 数据结构与算法 * 双链表找相交结点:这...

    一道腾讯面试题

    这道2011年腾讯校招的面试题虽然没有明确的问题描述,但从标签中我们可以推测,它可能涉及C++、.NET、Java这三种编程语言中的某一方面,或者是关于算法设计与分析。面试题通常旨在考察候选人的思维能力、编程基础...

    还在死记硬背面试题,面试官问我题的时候,我哭了,试试这一套,精心提炼核心重点内容简化实战应用面试宝典10秒钟搞定一道面试题!

    最新版Java面试宝典,精心提炼核心重点内容简化应用面试实战10秒一道,Java初级,高级,框架,底层原理,数据库,操作系统,微服务,IO,并发,JVM,容器,SpringBoot,SpringCloud,linx,面向对象,常用类,多线程,...

    华为Java面试题与详细代码

    【华为Java面试题详解】 1. **数组排序与字符串处理** ...同时,还需要了解其他Java核心概念,如多线程、集合框架、异常处理、IO流、设计模式等,以及JVM的工作原理和性能优化策略,这些都是Java开发者必备的技能。

    Java最常见的面试题208道.docx

    以上只是部分内容,完整的208道面试题涵盖了更多深入的Java知识,包括设计模式、Spring框架、Mybatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM优化等方面,每一道题目都值得深入探讨和学习。

    讲座资料(2021年-2022年收藏的常见的Java上机面试题.doc

    以下是一道典型的字符串截取面试题: **面试题1:怎样截取字符串** 该题要求编写一个函数,根据输入的字节数截取字符串,同时保证汉字不被分割。这个问题的关键在于理解Java中字符编码,尤其是中文字符占两个字节...

    java面试800题

    《java面试800题(包括java,数据库,前台等,绝对全面)》 Q0027 哪些SQL语句在执行时是自动提交的? 数据定义语言DDL是自动提交的。 Q0028 索引对数据库的影响? 提高查询速度 Q0029 主外键有什么关系? 外键是从...

    java面试100题以及答案地址

    以上仅为Java面试题中的一部分内容,每一道题目都包含了丰富的技术点和深入的理解。对于求职者来说,熟练掌握这些知识点不仅能够帮助应对面试挑战,还能在实际工作中更好地运用Java语言解决问题。

    最热考的java面试题

    - 同时给出了一道选择题,要求选出有效的内部类声明。 - 选项 **C** 和 **E** 是正确的: - **C**: 内部类可以访问外部类的私有成员变量 `d1`。 - **E**: 抽象内部类可以不提供方法实现。 ### 7. Java ...

    互联网大厂Java工程师岗位面试真题

    在互联网大厂的Java工程师面试中,涵盖的知识点广泛且深入,包括算法、数据结构、操作系统、网络、数据库以及并发编程等多个方面。以下是对这些面试题目的详细解析: 1. **数组平方值的取值种类**: 这是一道关于...

    IT互联网名企经典面试题汇总:Java篇 (2).pdf

    面试题还涉及到Hibernate生成策略、Struts框架、MySQL的间隙锁、String对象的不变性、集合类的使用、多线程状态、Git版本控制、设计模式的应用、Spring注解的实现、Redis的key冲突解决、一致性Hash原理等多个核心...

    java面试题+答案 最全版本,分类好的

    Java面试题+答案最全版本,分类好的,这个资源涵盖了从基础到高级的Java编程知识点,是准备Java面试的理想资料。下面将详细解读其中可能涉及的重要知识点。 首先,基础部分通常包括: 1. **Java语法**:理解基本...

    史上最难的一道Java面试题

    Java面试中的这道题目主要考察的是并发...总结来说,这道Java面试题主要测试了对`synchronized`关键字的理解,包括其作用、用法以及在并发环境中的内存可见性。理解这些概念对于编写正确且安全的多线程代码至关重要。

Global site tag (gtag.js) - Google Analytics