`

java 线程题目

    博客分类:
  • java
阅读更多

请编写一个多线程程序,实现两个线程,其中一个线程完成对某个对象的int成员变量的增加操作,即每次加1,另一个线程完成对该对象的成员变量的减操作,即每次减1,同时要保证该变量的值不会小于0,不会大于1,该变量的初始值为0.

 

package crease;

public class Sample {
	int number = 0;
	
	public synchronized void add(){
		while(number > 0){
			try {
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		number ++;
		System.out.print(number);
		notify();
	}
	
	public synchronized void jian(){
		while(number == 0){
			try {
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		number--;
		System.out.print(number);
		notify();
	}
}

 

package crease;

public class TestSample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Sample sample = new Sample();
		new AddThread(sample).start();
		new JianThread(sample).start();
	}

}

class AddThread extends Thread{
	private Sample sample;
	public AddThread(Sample sample){
		this.sample = sample;
	}
	
	public void run(){
		for(int i=0;i<10;i++){
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			sample.add();
		}
	}
}

class JianThread extends Thread{
	private Sample sample;
	public JianThread(Sample sample){
		this.sample = sample;
	}
	
	public void run(){
		for(int i=0;i<10;i++){
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			sample.jian();
		}
	}
}

 

分享到:
评论

相关推荐

    java多线程题目.doc

    java多线程题目.doc

    Java多线程练习题

    Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,提高了系统的效率和响应性。...通过这些题目,你可以检验自己对Java多线程的理解程度,并通过解答参考答案来查漏补缺,进一步提升自己的编程能力。

    JAVA多线程练习题答案。

    这些题目涵盖了 JAVA 多线程编程的基本概念和技术,包括线程的生命周期、线程同步、线程状态、线程优先级、线程安全等方面。 一、单项选择题 在单项选择题中,我们可以看到各种关于 JAVA 多线程编程的基本概念和...

    java多线程面试题59题集合

    Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,从而提升系统效率。在面试中,对Java多线程的理解和熟练运用往往成为衡量开发者技能水平的重要标准。以下是对Java多线程面试题59题集合中可能涉及的...

    java多线程题目[归类].pdf

    Java线程有一个优先级系统,但并不保证优先级高的线程会先执行,主要是为了避免优先级反转和优先级继承的问题。 理解并熟练掌握上述知识点对于Java多线程编程至关重要,可以帮助开发者编写出高效、安全的并发应用...

    java基础多线程练习题(1)

    通过这些题目,你可以更好地理解线程的工作原理,学会在实际项目中有效利用多线程提高程序性能,避免潜在的问题。在解决这些练习题的过程中,记得结合理论知识和实践操作,不断巩固和提高你的Java多线程技能。

    java编程题目 有答案

    3. 核心类库:学习如何使用Java的标准类库,比如集合框架、输入输出流处理(I/O)、网络编程、多线程等。 4. 异常处理:在Java中,异常处理是通过try、catch、finally关键字和自定义异常来实现的,这对于编写健壮的...

    Java笔试题目汇总122题

    Java线程基础 #### (1) 线程的概念与特点 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程(程序)至少有一个线程,如果一个进程只有一个线程,那么该进程和...

    java案例实训题目

    本实训题目集合提供了10个具有实用性和技巧性的Java案例,旨在帮助Java学习者巩固理论知识,提高编程能力。 1. **控制台交互**:在实训中,你可能会遇到设计一个简单的命令行应用,例如用户登录系统,这将涉及到...

    Java工程师线程试题

    以下是根据题目内容整理的一些Java线程相关知识点: 1. **线程睡眠**:`Thread.sleep()`方法用于使当前线程进入睡眠状态,参数单位为毫秒。例如,`sleep(10000)`表示线程将休眠10秒。 2. **线程创建方式**:Java...

    初学者java作业题目

    9. **多线程**:Java支持并发编程,理解线程的创建、同步和协作,是学习Java的高级主题,可以提升程序的性能和响应性。 10. **反射与注解**:反射允许程序在运行时检查和操作类、接口和对象,注解则提供了一种元...

    java面试题目题目

    Java面试题目是评估应聘者技术水平和专业知识的重要环节。在Java领域,面试官通常会围绕核心概念、编程能力、设计模式、并发处理、JVM优化、框架应用等方面进行提问。以下是一些可能出现在Java面试中的关键知识点: ...

    2018年上海高级Java面试题目1

    本资源摘要信息主要围绕高级Java面试题目,涵盖了多线程、线程工具类、线程池、前端框架、数据库优化、数据库分库分表、Spring框架、Dubbo微服务、Redis持久化等多方面的知识点。 多线程理解 在高级Java面试中,多...

    Android&Java的线程框架与模式_高焕堂_PDF.rar

    《Android&Java的线程框架与模式》是高焕堂先生撰写的一本深入探讨Android与Java线程管理的书籍,其内容涵盖了从基础到高级的线程应用技术。该书通过对多个章节的深入剖析,旨在帮助开发者理解并掌握在Android平台上...

    常用的Java面试题目汇总

    Java作为一门广泛使用的编程语言,其面试题目涵盖了基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、JVM优化、设计模式等多个方面。以下是一些基于给定文件名的常见Java面试知识点: 1. **Java ...

    JAVA题目&答案

    标题 "JAVA题目&答案" 暗示了这是一个与Java编程相关的学习资源,可能包含了各种Java编程题目及其解答。从描述中的“博文链接”可以看出,它可能来源于一位名为“zhuenwei”的博主在iteye博客平台上发布的内容。标签...

    贪吃蛇胆 java 多线程,网络

    《贪吃蛇游戏的Java实现:多线程与网络编程》 贪吃蛇游戏是一款深受玩家喜爱的经典小游戏,它的核心机制在于控制蛇的移动、碰撞检测以及食物的生成。在这个Java实现的版本中,我们看到游戏的设计巧妙地利用了多线程...

    java多线程同步问题

    多线程注意:wait()方法的调用要有判定条件常用 while () obj.wait(timeout, nanos); ... // Perform action appropriate to condition } synchronized会影响共享数据,但对其他语句的执行不会有规律了!

    Java经典笔试题目

    Java作为一门广泛使用的编程语言,其笔试题目涵盖了众多的知识点,包括基础语法、面向对象特性、集合框架、异常处理、多线程、IO流、网络编程、反射、JVM内存模型以及设计模式等方面。这份“Java经典笔试题目”文档...

    多线程练习题java

    java多线程初学者练习题目,供初学者练习使用

Global site tag (gtag.js) - Google Analytics