`
夜不懂白的黑
  • 浏览: 19679 次
  • 性别: Icon_minigender_1
  • 来自: 孝感
社区版块
存档分类
最新评论

java线程通信

    博客分类:
  • java
阅读更多

题目:子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次。



public class TraditionalThreadCommunicationTest
{
	public static void main(String[] args)
	{
		final Business business = new Business();
		
		new Thread(
				new Runnable()
				{					
					@Override
					public void run()
					{
						for(int i=1; i<=50; i++)
						{
							business.sub(i);
						}
					}
				}).start();
		
		for(int i=1; i<=50; i++)
		{
			business.main(i);
		}
	}
	
	static class Business
	{
		private boolean bShouldSub = true;
		public synchronized void sub(int i)
		{
			while(!bShouldSub)
			{
				try
				{
					this.wait();
				}
				catch (InterruptedException e)
				{
					e.printStackTrace();
				}
			}
			for(int j=1; j<=10; j++)
				System.out.println("sub thread sequence of " + j + ", loop of" + i);
			bShouldSub = false;
			this.notify();
		}
		public synchronized void main(int i)
		{
			while(bShouldSub)
			{
				try
				{
					this.wait();
				}
				catch (InterruptedException e)
				{
					e.printStackTrace();
				}
			}
			for(int j=1; j<=100; j++)
				System.out.println("main thread sequence of " + j + ", loop of" + i);
			bShouldSub = true;
			this.notify();
		}
	}
}
有关线程同步或通信问题:要用到共同数据(同步锁)或共同算法的若干个方法时,应该归结在同一个类上,
                                   在方法上做同步,这种设计体现了高类聚和程序的健壮性!
(来源于传智播客张孝祥老师多线程视频学习)
0
0
分享到:
评论

相关推荐

    Java 线程通信示例 源代码

    这个"Java线程通信示例源代码"很可能包含了演示如何在不同线程之间共享数据和协调执行顺序的实例。线程通信主要涉及两个核心概念:同步和互斥。 1. **线程同步**:线程同步是为了防止多个线程同时访问共享资源,...

    java线程通信课程设计

    Java线程通信是多线程编程中的一个重要概念,它涉及到如何在并发执行的线程间交换信息或协调工作。在Java中,线程通信主要通过共享内存和消息传递两种方式来实现。本课程设计旨在深入理解和实践Java线程通信机制,以...

    深入理解java线程通信

    深入理解 Java 线程通信 Java 线程通信是 Java 编程中一个非常重要的概念,它可以使得多个线程之间能够相互通信和协作,从而实现更加复杂的任务。下面我们将深入理解 Java 线程通信的机制和实现方式。 一、等待...

    JAVA 线程通信相关知识汇总

    JAVA 线程通信相关知识汇总 JAVA 线程通信是指在 JAVA 多线程环境下,多个线程之间的协作和交互,以达到共同完成任务的目标。JAVA 线程通信相关知识汇总主要介绍了 JAVA 线程通信相关知识,文中讲解非常细致,代码...

    Java 线程通信示例源代码

    本源代码是博客《Java 多线程编程之六:线程之间的通信(附源代码)》附带的实例性源代码。原博客链接地址:http://blog.csdn.net/defonds/archive/2010/01/26/5257301.aspx。

    深入理解Java 线程通信

    "深入理解Java 线程通信" Java 线程通信是指在 Java 编程语言中,多个线程之间如何进行交流和协作的机制。Java 提供了多种机制来实现线程间的通信,包括使用 wait()、notify() 和 notifyAll() 方法,使用同步锁和 ...

    Java线程间的通信方式详解

    本文将详细介绍两种常见的Java线程通信方式:同步和while轮询。 1. 同步(Synchronized) 同步是Java中控制线程并发的一种手段,它通过`synchronized`关键字实现。在Java中,同步主要有两种形式:同步方法(通过在...

    线程通信安全问题

    总的来说,Java线程通信安全问题主要涉及如何有效地管理共享资源,确保线程间的协作无误。通过wait()、notify()和notifyAll()方法,我们可以实现复杂的线程同步策略,解决并发编程中的诸多挑战。在实际开发中,应...

    java 线程通信(算法)

    关于java 中的多线程,很多初学者为之头疼,看了一些书后,编了几个小程序,发布到这,希望有用!

    java多线程通信图解

    java 多线程 其实就是每个线程都拥有自己的内存空间,多线程之间的通信,比例A线程修改了主内存(main方法的线程)变量,需要把A线程修改的结果同步到主线程中,这时B线程再从主线程获取该变量的值,这样就实现了...

    Java线程技术精选

    条件变量是Java线程通信的一种机制,用于在特定条件满足时唤醒或等待线程。它们常与同步块一起使用,使得线程能够在等待特定事件发生时释放锁,从而避免不必要的阻塞。 2. **原子量**: 原子量(Atomic Variables...

    java 多线程-线程通信实例讲解

    在Java中,线程通信主要依赖于共享内存和内置的等待/通知机制。 首先,线程通过共享对象通信是一种常见的策略。例如,一个线程(线程A)可能负责生产数据,而另一个线程(线程B)则负责处理这些数据。线程A可以通过...

    JAVA多线程通信学习_服务器多线程通信_

    在Java编程中,多线程通信是构建高效并发应用程序的关键技术。服务器多线程通信尤其重要,因为它允许服务器同时处理多个客户端请求,提高系统资源利用率并优化响应时间。本篇文章将深入探讨Java中的多线程通信,以及...

    java tcp多线程通信

    Java TCP多线程通信是网络编程中的一个重要概念,它结合了Java的Socket编程与多线程技术,使得多个客户端能够同时与服务器进行交互。在Java中,TCP(传输控制协议)提供了一种可靠的数据传输方式,确保数据的有序、...

    Java多线程通信机制研究.pdf

    "Java多线程通信机制研究" Java多线程通信机制是Java程序设计中的一个复杂技术,涉及到多个线程之间的通信和协作。多线程是一种程序运行机制,它允许在程序中并发执行多个指令流,每个指令流都被称为一个线程,彼此...

    java线程.pdf

    Java线程间通信主要包括线程间的同步和线程间的协作两部分。常用的通信方法有`wait()`、`notify()`和`notifyAll()`等。 1. **wait()**:使当前线程暂停执行,并释放当前持有的锁。 2. **notify()**:唤醒正在等待该...

    Java线程使用教程

    2. **线程通信**:`wait()`, `notify()` 和 `notifyAll()` 方法用于线程间的通信,它们必须在`synchronized`代码块或方法中使用。 3. **线程优先级**:Java线程有10个优先级,通过`setPriority()`设置,但实际调度...

    java线程实例 各种小Demo

    五、线程通信 Java提供了wait()、notify()和notifyAll()方法进行线程间的通信,但这需要在同步控制块(synchronized)中使用。Java 5引入了BlockingQueue阻塞队列,提供了一种更安全的线程间通信方式,如...

Global site tag (gtag.js) - Google Analytics