`
sbl2255
  • 浏览: 216424 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

谈synchronzied和Thread通信

    博客分类:
  • jdk
 
阅读更多
在线程开发中,常常会遇到资源共享与同步的问题,synchronized就是来解决这个问题的,可是当谈到Thread通信,它就不能全部胜任了,还需要notify、wait等来配合。

public class Demo {

	private String msg = "";
	
	private boolean isend = false;

	public String getMsg() {
		return msg;
	}

	public synchronized void setMsg(String msg) {
		isend = false;
		this.msg += msg;
		System.out.println(this.msg);
		if(this.msg.length()==4){
			notify();
			System.out.println(Thread.currentThread().getName()+ "...好了");
			isend = true;
			try {
				System.out.println(Thread.currentThread().getName()+ "...wait");
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			System.out.println(Thread.currentThread().getName()+"...notify");
			
		}
	}
	
	public synchronized void checkMsg(){
		if(this.msg.length()==4 || isend){
			this.msg = "";
			System.out.println(Thread.currentThread().getName()+ "...收到");
			notify();
			try {
				System.out.println(Thread.currentThread().getName()+"...wait");
				wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
}
分享到:
评论

相关推荐

    基于RT-Thread 数字焊机与工业机器人通信网关.zip

    基于RT-Thread 数字焊机与工业机器人通信网关.zip基于RT-Thread 数字焊机与工业机器人通信网关.zip基于RT-Thread 数字焊机与工业机器人通信网关.zip基于RT-Thread 数字焊机与工业机器人通信网关.zip基于RT-Thread ...

    RT-thread线程间同步和通信之信号量(动态)

    总结来说,RT-thread中的动态信号量是线程间同步和通信的重要工具,能够有效管理共享资源,避免竞态条件。在实际应用中,如STM32开发中控制硬件资源,如LED灯,通过信号量可以实现高效、可靠的控制逻辑。理解和熟练...

    rt-thread 通信

    这种基于lwIP协议栈的实现方式不仅保证了通信的可靠性,还体现了rt-thread系统在网络通信方面的灵活性和高效性。对于嵌入式开发者来说,深入理解这些底层实现细节有助于更好地利用rt-thread提供的强大网络功能,从而...

    RTThread Stm32 标准库参考工程.zip_RT-Thread STD库_rtos stm32_rtthread_rt

    通过这个参考工程,开发者可以学习如何在STM32上初始化RT-Thread,创建和管理线程,以及使用各种同步和通信机制。 在RTThread STM32标准库参考工程中,你可能找到以下关键知识点: 1. **RT-Thread初始化**:了解...

    Qt线程之间通信、线程和进程之间通信实例

    Qt库,一个跨平台的应用程序开发框架,提供了丰富的API来支持线程和进程间的通信。本实例将深入探讨Qt如何实现线程间通信以及线程与进程间通信,并提供简单易懂的代码示例。 一、Qt线程间通信 Qt通过信号和槽机制...

    Android代码-mainthread和WorkerThread线程之间的通信助手库

    AndroidChannel is helper library for inter thread communication between main thread and worker thread. AndroidChannel uses HandlerThread for inter thread communication. Setup Gradle dependencies { .....

    java多线程、通信机制、Thread类以及Runnable接口间的使用实例

    1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。

    soket通信(Thread)

    本示例涉及的主题是“Socket通信(Thread)”,这意味着它利用了Java的Socket类和多线程技术来实现在网络上的双向通信。下面我们将深入探讨这个主题。 首先,Socket在Java中被用来创建客户端和服务器之间的连接,它...

    android x86模拟器和PC相互通信(socket)

    综上所述,实现Android模拟器和PC之间的Socket通信需要在PC端编写服务程序,Android端编写客户端程序,通过指定的IP地址和端口进行通信。确保Android应用有网络访问权限,处理好异常,以及正确地打开和关闭Socket...

    threadx中文资料

    1. **通信设备**:例如路由器、交换机等网络设备,要求高度可靠和实时响应。 2. **消费电子**:智能手机、智能家电等,对用户体验有着极高的要求。 3. **汽车电子**:发动机控制系统、车载娱乐系统等,需要满足严格...

    ThreadX中文学习手册

    - **嵌入式应用程序**:ThreadX适用于各种嵌入式应用场景,如移动设备、通信设备、汽车电子系统、医疗器械等。 - **实时软件**:ThreadX非常适合那些对外部事件需要快速响应的实时系统,例如控制系统、监控系统等。 ...

    rtthread 调通freemodbus 从机和主机STM32F103VCT6

    在本文中,我们将深入探讨如何在RTThread操作系统上配置并调试FreeModbus协议,以便在STM32F103VCT6微控制器上实现主从通信。RTThread是一款轻量级、高效的实时操作系统,广泛应用于物联网设备。FreeModbus是Modbus...

    使用rt-thread做的控制板,对接控制通信模块和传感器模块,进行传感器采集和数据上传.zip

    在本项目中,我们主要探讨的是一个基于rt-thread操作系统实现的控制板系统,该系统用于对接控制通信模块和传感器模块,实现传感器数据的采集与上传。rt-thread是一个开源的、实时性良好的轻量级嵌入式操作系统,适用...

    ThreadX5.1 Win32 Demo

    ThreadX的核心特性包括任务调度、中断处理、内存管理、同步和通信机制等。在5.1版本中,可能包含了对性能的优化、新的API函数、更好的调试支持以及对更多硬件平台的支持。"Setup.exe"文件是安装程序,用于在Windows...

    ThreadX内核用户手册,含SMP多核(中文版).pdf

    ThreadX RTOS 提供高级计划、通信、同步、计时器、内存管理和中断管理功能。 ThreadX API 服务 ThreadX API 是 ThreadX RTOS 的核心部分,提供了多种服务,包括: * tx_thread_create():创建一个新的线程 * ...

    rt-thread mcp2515驱动程序参考

    RT-Thread MCP2515驱动程序是专为在嵌入式系统中实现SPI到CAN(Controller Area Network)转换而设计的...通过理解和使用`mcp2515_drive.c`和`mcp2515_drive.h`中的代码,开发者可以轻松实现基于MCP2515的CAN通信方案。

    嵌入式实时操作系统的ThreadX中文版.rar

    关于线程通信,ThreadX支持队列、管道和消息邮箱等多种通信方式。队列用于传输固定大小的数据块,管道可以传输可变大小的数据,而消息邮箱则结合了两者的优点,既可传输不同类型的数据,又能保证数据完整性。 ...

    threadX的VC开发环境

    接下来,他们可以编写源代码,调用ThreadX API创建线程、定义调度策略、管理内存以及实现通信机制。在代码完成后,通过VS2005的调试器进行测试和调试,确保程序在ThreadX环境下按预期运行。 总的来说,ThreadX的VC...

    RealThread.RT-Thread.3.1.5.zip

    - 开发者可以基于RT-Thread创建自定义的应用程序,例如通过TCP/IP网络通信模块实现远程控制,或者利用GUI组件设计用户友好的交互界面。 - 通过RT-Thread的设备驱动框架,快速接入各类传感器和执行器,实现物联网...

Global site tag (gtag.js) - Google Analytics