请编写一个多线程程序,实现两个线程,其中一个线程完成对某个对象的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多线程是Java编程中的核心概念,它允许程序同时执行多个任务,提高了系统的效率和响应性。...通过这些题目,你可以检验自己对Java多线程的理解程度,并通过解答参考答案来查漏补缺,进一步提升自己的编程能力。
这些题目涵盖了 JAVA 多线程编程的基本概念和技术,包括线程的生命周期、线程同步、线程状态、线程优先级、线程安全等方面。 一、单项选择题 在单项选择题中,我们可以看到各种关于 JAVA 多线程编程的基本概念和...
Java多线程是Java编程中的核心概念,它允许程序同时执行多个任务,从而提升系统效率。在面试中,对Java多线程的理解和熟练运用往往成为衡量开发者技能水平的重要标准。以下是对Java多线程面试题59题集合中可能涉及的...
Java线程有一个优先级系统,但并不保证优先级高的线程会先执行,主要是为了避免优先级反转和优先级继承的问题。 理解并熟练掌握上述知识点对于Java多线程编程至关重要,可以帮助开发者编写出高效、安全的并发应用...
通过这些题目,你可以更好地理解线程的工作原理,学会在实际项目中有效利用多线程提高程序性能,避免潜在的问题。在解决这些练习题的过程中,记得结合理论知识和实践操作,不断巩固和提高你的Java多线程技能。
3. 核心类库:学习如何使用Java的标准类库,比如集合框架、输入输出流处理(I/O)、网络编程、多线程等。 4. 异常处理:在Java中,异常处理是通过try、catch、finally关键字和自定义异常来实现的,这对于编写健壮的...
Java线程基础 #### (1) 线程的概念与特点 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程(程序)至少有一个线程,如果一个进程只有一个线程,那么该进程和...
本实训题目集合提供了10个具有实用性和技巧性的Java案例,旨在帮助Java学习者巩固理论知识,提高编程能力。 1. **控制台交互**:在实训中,你可能会遇到设计一个简单的命令行应用,例如用户登录系统,这将涉及到...
以下是根据题目内容整理的一些Java线程相关知识点: 1. **线程睡眠**:`Thread.sleep()`方法用于使当前线程进入睡眠状态,参数单位为毫秒。例如,`sleep(10000)`表示线程将休眠10秒。 2. **线程创建方式**:Java...
9. **多线程**:Java支持并发编程,理解线程的创建、同步和协作,是学习Java的高级主题,可以提升程序的性能和响应性。 10. **反射与注解**:反射允许程序在运行时检查和操作类、接口和对象,注解则提供了一种元...
Java面试题目是评估应聘者技术水平和专业知识的重要环节。在Java领域,面试官通常会围绕核心概念、编程能力、设计模式、并发处理、JVM优化、框架应用等方面进行提问。以下是一些可能出现在Java面试中的关键知识点: ...
本资源摘要信息主要围绕高级Java面试题目,涵盖了多线程、线程工具类、线程池、前端框架、数据库优化、数据库分库分表、Spring框架、Dubbo微服务、Redis持久化等多方面的知识点。 多线程理解 在高级Java面试中,多...
《Android&Java的线程框架与模式》是高焕堂先生撰写的一本深入探讨Android与Java线程管理的书籍,其内容涵盖了从基础到高级的线程应用技术。该书通过对多个章节的深入剖析,旨在帮助开发者理解并掌握在Android平台上...
Java作为一门广泛使用的编程语言,其面试题目涵盖了基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、JVM优化、设计模式等多个方面。以下是一些基于给定文件名的常见Java面试知识点: 1. **Java ...
标题 "JAVA题目&答案" 暗示了这是一个与Java编程相关的学习资源,可能包含了各种Java编程题目及其解答。从描述中的“博文链接”可以看出,它可能来源于一位名为“zhuenwei”的博主在iteye博客平台上发布的内容。标签...
《贪吃蛇游戏的Java实现:多线程与网络编程》 贪吃蛇游戏是一款深受玩家喜爱的经典小游戏,它的核心机制在于控制蛇的移动、碰撞检测以及食物的生成。在这个Java实现的版本中,我们看到游戏的设计巧妙地利用了多线程...
多线程注意:wait()方法的调用要有判定条件常用 while () obj.wait(timeout, nanos); ... // Perform action appropriate to condition } synchronized会影响共享数据,但对其他语句的执行不会有规律了!
Java作为一门广泛使用的编程语言,其笔试题目涵盖了众多的知识点,包括基础语法、面向对象特性、集合框架、异常处理、多线程、IO流、网络编程、反射、JVM内存模型以及设计模式等方面。这份“Java经典笔试题目”文档...
java多线程初学者练习题目,供初学者练习使用