1.服务器应用程序从远程来源(如套接字)获取输入。当读取套接字时,如果当前没有可用数据,那么对SocketInpuStream.read()的调用将会阻塞,直到有可用数据为止。
如果单线程程序要读取套接字,而套接字另一端的实体并未发送任何数据,那么该程序只会永远等待,而不执行其他处理。相反,程序可以轮询套接字,查看是否有可用数据,但通常不会使用这种做法,因为会影响性能。
但是,如果你
创建了一个线程来读取套接字,那么当这个线程等待套接字的输入时,主线程就可以执行其他的任务。你甚至可以创建多个线程,这样就可以同时读取多个套接字。这样,当有可用数据时,你会迅速得到通知(因为正在等待的线程被唤醒),而不必经常轮询以检查是否有可用数据。使用线程等待套接字的代码也比轮询要简单,更不易出错。
分享到:
相关推荐
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
【Java编程语言基础】 Java是一种广泛使用的面向对象的编程...这些笔记内容全面覆盖了Java的基础和进阶知识,适合从零开始学习Java的人群,通过系统学习,可以建立起扎实的Java编程基础,为实战项目开发打下坚实基础。
4. 多线程:在10多线程.md中,介绍了如何创建和管理Java线程,包括Thread类、Runnable接口,以及同步机制如synchronized关键字、wait()、notify()和notifyAll()方法。多线程技术是实现并发执行的关键,有助于提高...
【宋红康java笔记】是一份综合性的Java学习资料,由知名编程教育者宋红康编撰。这份压缩包文件包含了大量的Java编程知识点,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言的核心概念与高级特性。以下是根据...
- **实现方式**:通过继承`Thread`类或实现`Runnable`接口。 - **生命周期**:新建、就绪、运行、阻塞、死亡。 - **线程方法**:如`start()`、`run()`、`join()`等。 - **并发处理**:多个线程访问共享资源时需要...
这份“Java学习笔记(必看经典).doc”文档将涵盖Java的核心概念和重要知识点,对于初学者和有经验的开发者来说都是宝贵的参考资料。 首先,Java的基础部分通常包括以下几个方面: 1. **Java语法基础**:这是所有...
线程是并发编程的基础,Java提供了Thread类和Runnable接口来创建并管理线程。PPT可能会讲解线程的生命周期、同步机制(如synchronized关键字和Lock接口)、线程池的使用等。 此外,Java还包含丰富的标准库,如 ...
Java内置了对多线程的支持,Thread类和Runnable接口是创建线程的两种方式。线程同步和互斥是避免数据竞争的关键,synchronized关键字和wait()、notify()方法是实现线程通信的重要手段。 八、网络编程 Java的Socket...
6. **多线程**:Java提供了丰富的多线程支持,包括Thread类、Runnable接口,以及同步控制方法如synchronized关键字、wait()、notify()等。学习笔记会介绍如何创建和管理线程,以及如何避免并发问题。 7. **网络编程...
《李兴华老师Java基础笔记》是一份全面且详尽的Java学习资料,由知名教育者李兴华老师精心编撰。这份笔记涵盖了Java编程语言的基础到进阶的知识点,旨在帮助初学者和有一定经验的开发者巩固Java技能,提升编程能力。...
【Java编程基础】 ...以上是黑马Java教程知识点笔记的主要内容,涵盖了Java编程的基础到进阶知识,是学习和巩固Java技能的重要参考资料。通过深入理解和实践这些知识点,开发者可以逐步提升Java编程能力。
《黑马程序员Java基础笔记》是一份全面覆盖Java编程基础知识的学习资料,旨在帮助初学者迅速掌握Java编程语言,能够独立编写Java程序。这份笔记由多个部分组成,分别详细讲解了Java的基础语法、集合、多线程、IO以及...
Java内置对多线程的支持,通过Thread类和Runnable接口实现。理解和掌握线程同步机制(如synchronized关键字、Lock接口)、线程池(ExecutorService)以及并发容器(如ConcurrentHashMap)对于编写高性能的并发程序至...
《良葛格java学习笔记》是一份集合了Java学习精华的资源,主要针对初学者和对Java编程感兴趣的读者。这份笔记是由用户从良葛格的网站上精心整理并转化为CHM格式,便于阅读和查阅。CHM(Compiled Help Manual)是微软...
"JAVA笔记(根据马士兵的java视频整理)" 本资源是根据马士兵的JAVA视频整理的笔记,涵盖了JAVA的基础知识、数据结构、面向对象编程、Java Web编程、J2EE、J2ME等方面的知识点。 在基础知识方面,本资源涵盖了变量...
Java提供了多种创建和管理线程的方式,如通过`Thread`类或实现`Runnable`接口。笔记可能涉及线程同步、线程安全、死锁和线程池等高级主题。 6. **网络编程** (day23-网络编程01.md、day24网络编程02.md) Java提供...
9. **多线程**:Java内置了对多线程的支持,通过实现Runnable接口或继承Thread类可以创建并运行线程。 10. **文件操作**:Java提供了File类来处理文件和目录,如创建、删除、移动和读写文件。 11. **网络编程**:...
此外,线程是Java并发编程的基础,通过实现Runnable接口或继承Thread类可以创建并运行线程。线程管理包括同步和互斥,以避免多线程环境下的数据不一致性。 最后,Java的反射API允许我们在运行时检查类、接口、字段...
Java提供了内置的多线程支持,包括Thread类和Runnable接口。学习如何控制线程的同步和通信,可以避免并发问题,如死锁和竞态条件。 最后,书中还会涉及输入/输出(I/O)系统,网络编程,以及Java反射和动态代理等...
7. **多线程**:Java内置了对多线程的支持,通过Thread类或实现Runnable接口可以创建并运行多个线程,实现并发执行。 8. **接口与内部类**:接口定义了一组方法签名,提供了一种实现多继承的方式。内部类(包括成员...