`

企业牛逼面试题目 高手进来讨论答题

阅读更多
1.给你两个正方体同0到9十个数字,能不能组成1个月中的日期,给出理由

2.你认为最快的排序的程序是什么,给出代码

3.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
分享到:
评论
1 楼 fayedShih 2011-10-27  
第三题,不知道对不对
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

class Data {
	private int iPool = 0;
	private boolean pauseAdd = false;
	private int max=200;

	synchronized void add() {
		System.out.println("iPool in add() is " + ++iPool);
		if (iPool > max) {
			notifyAll();// notify other suspended task
			pauseAdd = true;
		}
	}

	synchronized void subtract() {
		System.out.println("iPool in minus() is " + --iPool);
		if (iPool < 0) {
			notifyAll(); // notify other suspended task
			pauseAdd = false;
		}
	}

	synchronized void waitForAdd() throws InterruptedException {
		if (pauseAdd)
			wait();
	}

	synchronized void waitForMinus() throws InterruptedException {
		if (!pauseAdd)
			wait();
	}
}

class Cls1 implements Runnable {
	private Data data;

	Cls1(Data data) {
		this.data = data;
	}

	public void run() {
		while (!Thread.interrupted()) {
			try {
				data.waitForAdd();
				data.add();
				TimeUnit.MICROSECONDS.sleep(1000);
				Thread.yield();
			} catch (Exception e) {
				System.out.println("Exiting from addition task...");
				return;
			}
		}
	}
}

class Cls2 implements Runnable {
	private Data data;

	Cls2(Data data) {
		this.data = data;
	}

	public void run() {
		while (!Thread.interrupted()) {
			try {
				data.waitForMinus();
				data.subtract();
				TimeUnit.MICROSECONDS.sleep(1000);
				Thread.yield();
			} catch (InterruptedException e) {
				System.out.println("Exiting from subtraction task...");
				return;
			}
		}
	}
}

class Test {
	public static void main(String args[]) throws InterruptedException {
		Data data = new Data();
		ExecutorService exec = Executors.newCachedThreadPool();
		for (int i = 0; i < 2; i++) {
			exec.execute(new Cls1(data));
			exec.execute(new Cls2(data));
		}
		TimeUnit.SECONDS.sleep(3); // run 3 seconds
		exec.shutdownNow();
	}
}

相关推荐

    java面试题目与技巧1

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    18道非常牛逼的Nginx面试题!.zip

    18道非常牛逼的Nginx面试题!.zip

    牛B硬件信息修改大师-一键修改电脑所有信息

    【标题】:“牛B硬件信息修改大师-一键修改电脑所有信息” 这个软件工具的主要功能是让用户能够方便快捷地更改他们的计算机硬件信息。在IT行业中,硬件信息修改可能涉及到多个方面,包括但不限于CPU型号、内存容量...

    牛B硬件信息修改大师(绿色版)

    同时还带有清除临时文件、cookies、错误文件以及一些无用的bak、old、log等文件,你也可以自定义进行修改部分信息,可以说这是一款牛B硬件信息修改大师,该软件操作简便、而且非常的小,只有区区1M多。 该款牛B硬件...

    牛b硬件修改大师

    牛B硬件信息修改大师可以一键更改,能够自动修改电脑硬件的所有信息,包括用户和组、网卡mac地址、产品ID号、系统注册信息、系统版本及安装时间、系统序列号、硬盘序列号、游览器信息以及本地时区等,同时还带有清除...

    牛B硬件信息修改大师

    牛B硬件信息修改大师黑狼破解版可以一键更改,能够自动修改电脑硬件的所有信息,包括用户和组、网卡mac地址、产品ID号、系统注册信息、系统版本及安装时间、系统序列号、硬盘序列号、游览器信息以及本地时区等,同时...

    牛b硬件修改大师 破解版 硬盘序列mac ie版本修改

    牛b硬件修改大师 破解版 硬盘序列mac ie版本修改

    超级牛B数据恢复软件

    超级牛B数据恢复软件是一款简单易用并且功能强大的文件恢复软件,支持FAT/FAT32/NTFS/exFAT文件系统,可以轻松恢复被误删除或者误格式化以及误分区或者分区表损坏丢失的磁盘文件数据,支持DOC, DOCX, XLS, XLSX, PPT...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    面试题12:char x[] = {"abcd"}和 char y[] = {'a','b','c','d'} 有不同吗 面试题13:char型数据在内存中的存储形式 3.4 运算符 面试题14:请写出下列代码的输出内容 面试题15:运算符的优先级问题 面试题16:&&...

    易语言E-牛B模块.ec

    易语言E-牛B模块.ec

    假装黑客高手装B网页源码

    最近抖音很火的在线伪装黑客高手装B网页源码,黑客大牛拿去做黑页吧

    安芯网盾笔试题目

    安芯网盾笔试题目 以下是对给定文件信息的知识点解释: 1. 输出内容是什么? 这是一个关于递归函数的题目,函数 `print` 将字符串 `str` 递归输出。函数 `print` 的参数是指向字符的指针 `s`,递归调用自己,直到...

    牛叉公司面试题集之C和C++版本

    牛叉公司面试题集中的C和C++知识点涵盖面很广,包括基础语法、数据结构、内存管理、算法、网络通信等方面。下面我们详细解读这些知识点。 1. 关于static关键字的用途,主要可以限制变量的作用域和设置变量的存储域...

    牛B硬件信息修改大师2018最新版

    《牛B硬件信息修改大师2018最新版》是一款专为用户设计的硬件信息修改工具,它在硬件信息管理领域具有较高的实用性和便捷性。本文将深入探讨这款软件的功能、应用及其相关知识点。 硬件信息修改通常涉及到计算机的...

    牛逼的企业文化传播方案.pptx

    【企业文化的定义与重要性】 企业文化,又称为公司文化或组织文化,是指企业在长期发展过程中形成的价值观、信念、行为准则、工作习惯以及企业精神等无形要素的总和。它是企业的灵魂,对企业的经营策略、员工行为、...

    牛B硬件信息修改大师最新版

    《牛B硬件信息修改大师最新版》是一款专为个人计算机用户设计的软件工具,它能够修改PC硬件的各种信息,使得用户可以根据需要自定义系统显示的硬件配置。在使用这款工具时,用户可以调整诸如CPU型号、内存大小、硬盘...

    深度完美牛B电影搜索器

    深度完美牛B电影搜索器,只有你想不到的,没有你做不到的

Global site tag (gtag.js) - Google Analytics