`

关于多线程的一道题目

    博客分类:
  • java
阅读更多

题目大意:有四个线程,每个线程输出1,2,3,4,设计程序使得依次输出:1111222233334444

 

求解思路:创建一个对象o,当四个线程依次输出1后,检测已经输出的次数count,如果输出次数为1,2,3,那么让线程进入对象o的等待集,如果为4,那么唤醒o中等待集中所有线程并将count重置。

 

public class PrintTest extends Thread {
	public static Object o=new Object();
	public static int count=0;
	private int num=0;
	
	public void run(){
		synchronized(o){
		    while(num<4){
		        System.out.println(num+1);
			    if(count<2){
			        count++;
			        try {
						o.wait();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
			    }else{
				    count=0;
				    o.notifyAll();
			    }
		    }
	    }
	}
	
	public static void mian(String[] args){
		for(int i=0;i<4;i++){
			new PrintTest().start();
		}
	}

}

 输出:1111222233334444

分享到:
评论

相关推荐

    多线程求连续质数和的完全幂

    总结起来,这个问题涉及了质数理论、完全平方数的计算以及多线程编程技术,是一道结合了数学和计算机科学的综合题目。通过解决这个问题,开发者不仅能深入理解质数和完全平方数的数学性质,还能提升在实际项目中应用...

    Linux 多线程介绍

    Linux下的多线程技术是操作系统中并发执行的重要概念。线程是进程内的执行单元,相比进程,线程具有更低的开销和更快的上下文切换速度。本文将深入讲解线程的相关知识,包括进程与线程的区别、使用线程的优势、线程...

    一道多线程题目的解决方案

    这道多线程题目旨在考察开发者如何在Java中有效地控制线程的同步和协作,确保它们按照特定的顺序执行...这种解决方案展示了Java并发编程中锁和条件变量的重要应用,对于理解和处理复杂的多线程同步问题具有很高的价值。

    一道题目的算法优化过程

    7. **利用并行计算**:对于可并行的任务,使用多线程或多进程,或者分布式计算框架,如MapReduce。 8. **缓存优化**:利用CPU缓存机制,减少主存访问,如局部性原理的应用。 9. **算法替换**:有时,完全不同的...

    用java写的一个多线程的c/s客户端的考试系统

    Java编写的多线程C/S客户端考试系统是一个典型的分布式应用程序,它将客户端(Client)与服务器端(Server)分开,实现高效、稳定的考试服务。在这个系统中,Java语言以其跨平台性和丰富的类库成为了开发首选。下面...

    一道C#面试题目

    标题 "一道C#面试题目" 暗示我们即将探讨的是与C#编程语言相关的面试问题,这可能涉及语言的基础概念、高级特性、面向对象编程、.NET框架、多线程、异常处理、内存管理等多个方面。在C#的面试中,面试官通常会考察...

    多线程实现30个人抢五个座位

    本题目“多线程实现30个人抢五个座位”是一道典型的多线程同步问题,用于考察程序员对并发控制的理解和应用。下面我们将详细探讨这个问题的解决方案及其背后的原理。 首先,代码中定义了一个名为`Seat`的类,该类...

    C和C++的经典题目集锦

    例如,一道关于动态内存分配的题目可能要求你实现一个简单的链表,而一道关于面向对象的题目可能需要你设计一个简单的类体系。通过这样的练习,你可以不断提升自己的编程技巧,为更复杂的项目打下坚实基础。

    Java编程一道多线程问题实例代码

    Java编程中的多线程问题实例主要探讨如何高效地利用多线程处理任务,这里通过一个模拟打印日志的场景来阐述。题目要求处理16条日志记录,每条记录打印耗时1秒,目标是在4秒内完成全部打印工作,通过开启4个线程来...

    Java进阶学习——Java多线程知识的理解

    从一道题目引入2.创建线程2.1.继承Thread类2.2.实现Runnable接口3.线程的生命周期4.线程安全4.1.为什么需要线程安全?4.2.如何实现线程安全?5.线程池5.1.为什么需要线程池?5.2.创建线程池5.2.1.创建可缓存线程池...

    java基础编程题java基础编程题.doc

    Java是一种高级、基于对象的编程语言,它具有跨平台、面向对象、分布式、多线程等特点。Java基础编程题是Java编程的基础知识点的总结,涵盖了Java语言的基本语法、数据类型、运算符、控制结构、函数、数组、面向...

    SSD4 exam1的程序题目的答案

    7. **并发与多线程**:在处理系统级问题时,理解和应用并发和多线程是重要的,这可能涉及到同步机制,如锁、信号量等。 8. **数据库操作**:SQL查询、数据连接、事务管理等数据库基础知识也可能出现在题目中。 9. ...

    java的一道考试题

    6. **多线程**:Thread类和Runnable接口的使用,同步机制如synchronized关键字、wait/notify方法等,都是多线程编程的重要知识点。 7. **泛型**:泛型用于创建类型安全的集合,限制元素类型,提升代码可读性和复用...

    操作系统题目题集 备战考研必不可少的资料

    操作系统是计算机科学的基础课程之一,对于想要在...请仔细阅读每一道题目,理解并掌握其背后的原理,同时,可以尝试设计和分析不同场景下的操作系统问题,以提升分析和解决问题的能力。祝你备考顺利,取得理想的成绩!

    华为计算机公司的面试题目

    这个文件可能包含的是第三套华为面试题目,涵盖范围广泛,可能包括操作系统原理(如进程与线程、内存管理、文件系统)、网络知识(TCP/IP协议、HTTP协议、网络安全)、数据库管理(SQL查询、事务处理、索引优化)等...

    Java笔试题目 !!!

    Java笔试题目是评估应聘者Java编程能力的重要环节,它涵盖了从基础语法到高级特性的各个方面。...对于“Java笔试题目汇总[一].txt”这样的资料,应当仔细阅读,理解并完成每一道题目,以提升自己的Java编程技能。

    软考中级程序设计师笔记+题目+讲解.rar

    下午题则偏向于编程实践,可能会涉及C++、Java、Python等主流编程语言的语法、面向对象设计原则、异常处理、多线程编程等内容。讲解部分会通过实例解析,帮助考生提高解决实际问题的能力,比如如何编写高效、可维护...

    程序设计实用案例选讲袁卫华案例选讲第十一周课.ppt

    - 用户答题后,根据答案判断得分,并准备下一道题目。如果所有题目完成,通知用户并提供重新开始的选项。 在编写这样的程序时,需要考虑线程安全,确保在多线程环境中正确地访问共享资源,避免出现并发问题。同时,...

    中兴2014校园招聘 软件笔试题目

    由于题目是以图片形式存在,并且有8页之多,因此解题时可能需要仔细放大查看以确保清晰度。 这份笔试题目可能涵盖了以下几个关键的知识点: 1. **编程基础**:通常会包含C/C++、Java或Python等主流编程语言的基本...

    蓝桥杯java历年真题及答案整理(共129道题目及答案)

    6. **多线程**:理解线程的基本概念,掌握Thread类和Runnable接口的使用,以及同步机制(synchronized关键字、wait/notify机制)。 7. **泛型**:泛型提供了一种在编译时检查类型安全并减少代码冗余的方法,理解其...

Global site tag (gtag.js) - Google Analytics