`

线程的通信

 
阅读更多

public class TraditionalThreadCommunication {
   
    public static void main(String[] args) {
       
        final Business business = new Business();
       
        new Thread() {
           
            @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);
        }
       
    }
}

class Business {
   
    boolean    isShouldSub    = true;
   
    public synchronized void sub(int times) {
       
        while (!isShouldSub) {
            try {
                //wait必须和synchronized结合使用,并且用的互斥对象必须一样,这里都用的this
                //线程执行到this.wait()后就进入等待,直到this对象的notifyAll或者notify方法被调用
                this.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
       
        for (int i = 1; i <= 10; i++) {
            System.out.println("sub--" + times + ":" + i);
        }
       
        isShouldSub = false;
        //该方法会唤醒调用过this.wati()的线程,让他们继续执行
        this.notifyAll();
    }
   
    public synchronized void main(int times) {
       
        while (isShouldSub) {
            try {
                this.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        for (int i = 1; i <= 100; i++) {
            System.out.println("main--" + times + ":" + i);
        }
       
        isShouldSub = true;
        this.notifyAll();
    };
}

分享到:
评论

相关推荐

    VS2017实现Tcp socket多线程通信(C++)

    在本文中,我们将深入探讨如何使用Visual Studio 2017和C++来实现TCP套接字的多线程通信。TCP(传输控制协议)是一种面向连接、可靠的、基于字节流的通信协议,广泛应用于互联网上的各种服务。多线程技术则允许我们...

    多线程通信ThreadDemo

    在Java编程中,多线程通信是一个重要的概念,特别是在并发编程中。`ThreadDemo`示例可能演示了如何在不同的线程之间有效地传递信息。线程通信是解决多个执行流同步和协作的关键,确保数据的一致性和正确性。以下是...

    多线程之间的线程通信

    然而,多线程通信也存在潜在的危险。其中最常见的问题是**竞态条件(Race Condition)**,即多个线程同时访问并修改同一数据,导致结果不可预测。另一个问题是**死锁(Deadlock)**,即两个或更多线程相互等待对方释放...

    多线程通信和等待机制.docx

    多线程通信和等待机制 多线程通信和等待机制是多线程编程中一个重要的概念,它们都是基于线程之间的同步和协作来实现的。其中,wait()和notify()方法是Java语言中实现多线程通信和等待机制的两个核心方法。 wait()...

    计算机网络多线程通信简例

    在计算机科学领域,尤其是软件开发中,多线程通信是一个重要的概念,特别是在处理并发任务和优化性能时。本文将深入探讨计算机网络中的多线程通信,以Java编程语言为例,结合"MT_WebServer"这一文件,来阐述如何实现...

    C++实现多线程通信

    在C++编程中,多线程通信是并发执行任务时必不可少的一个环节,它涉及到线程间的同步和数据共享。在本篇文章中,我们将深入探讨如何在C++中实现多线程通信,以及相关的同步机制和数据交换策略。 一、线程创建与管理...

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

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

    socket多线程通信源码

    Socket多线程通信是网络编程中的重要组成部分,它允许服务器端和客户端进行高效的数据交互。在实际应用中,如在线聊天、文件传输等场景,往往需要用到多线程来提高并发处理能力,使得服务端可以同时处理多个客户端的...

    qt 中 多线程tcp通信

    首先,标题"qt 中 多线程tcp通信"表明我们要在Qt环境中实现TCP(Transmission Control Protocol)的多线程通信。TCP是一种面向连接的、可靠的传输协议,确保数据的顺序传输和错误检查。在多线程环境下,我们可以将...

    java多线程通信图解

    一张图方便理解和掌握java 多线程之间通信的实质 java 多线程 其实就是每个线程都拥有自己的内存空间,多线程之间的通信,比例A线程修改了主内存(main方法的线程)变量,需要把A线程修改的结果同步到主线程中,...

    多线程通信读写文件

    在编程领域,多线程通信是提升程序效率和并发能力的重要技术。特别是在处理大量数据时,如读写文件,多线程可以同时执行不同的任务,从而显著提高整体性能。本项目着重探讨如何在多线程环境中实现安全有效的文件读写...

    qt编写的Udp使用线程通信

    在Qt框架下,UDP(User Datagram Protocol)的线程通信是一种常见的网络编程需求,它涉及到多线程技术、网络编程以及Qt的相关库。本篇将深入解析如何在Qt环境中使用线程来实现UDP通信。 首先,理解UDP协议是至关...

    C#基于TCP的Socket多线程通信(包含服务端和客户端)

    C#是一种广泛用于构建桌面和Web应用程序的编程语言,它提供了强大的网络编程能力,其中包括使用TCP Socket进行多线程通信。本篇文章将深入探讨C#中基于TCP的Socket多线程通信,包括服务端和客户端的实现。 TCP...

    V201实现picket多线程通信(C , udp多 线程

    在IT领域,多线程通信是并发编程中的一个重要概念,特别是在网络编程中,如UDP(User Datagram Protocol)通信。本文将详细讲解如何使用C语言在Visual Studio 2017中实现Picket多线程通信,以及如何利用select系统...

    C# tcp多线程通信

    通过学习和实践C#的TCP多线程通信,开发者可以构建出能够处理大量并发连接的健壮网络服务。这种技术广泛应用于聊天应用、在线游戏、文件传输和其他需要实时交互的应用中。理解并掌握这些概念对于任何想要在C#环境中...

    控制台多线程通信 c++ winsock技术

    在C++编程中,实现控制台多线程通信通常涉及到并发处理和网络编程。Winsock是Windows操作系统中用于网络通信的API(应用程序接口),它提供了一套标准的接口供开发者使用,使得在C++中实现TCP/IP协议栈的程序变得...

    两个串口多线程通信

    在IT行业中,多线程通信是一项关键技能,尤其是在需要处理多个并发任务或高效利用系统资源的场景下。本文将深入探讨“两个串口多线程通信”这一主题,结合标签“22”,我们可以理解为涉及两个串行端口在多线程环境下...

    java tcp多线程通信

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

    多线程_sometimelrz_examine9j3_多线程通信_

    在IT领域,多线程通信是一项关键的技术,尤其在客户端-服务器架构中,它使得程序能够同时处理多个请求,提高系统效率和响应速度。本文将深入探讨多线程通信的概念、重要性以及实现方法。 首先,多线程是指在一个...

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

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

Global site tag (gtag.js) - Google Analytics