摘要: java1.4开始,提供NIO的API来开发高性能网络服务器,前面介绍的IO方式均为BIO,即阻塞式IO。阻塞式IO在IO操作发起后直到IO操作结果返回这段时间,会一直阻塞该线程,所以基于BIO的网络服务器必须为每个客户端都提供一个独立线程进行处理,否则将会产生很大的延迟。但是当客户端请求并发数量很 阅读全文
posted @ 2017-10-19 20:41 The_shy 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 一、ServerSocket类 ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状态,在新建这个类的时候可以指定监听的端口。 Socket accept() 调用ServerSocket对象的accept()方法,可以返回监听到的Socket对象。 使 阅读全文
posted @ 2017-10-16 22:43 The_shy 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 一、InetAddress java提供了InetAddress代表IP地址,它有两个子类Inet4Address和Inet6Address,分别代表了IPV4和IPV6地址。 这个类没有构造器,而是使用两个静态工厂方法来获得InetAddress实例 getByName(String host); 阅读全文
posted @ 2017-10-16 21:55 The_shy 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 程序员可以由java提供的一些用于网络编程的API和工具类可以实现对TCP/IP网络的各种编程,利用TCP/IP传输信息,从而实现主要的四个功能: 资源共享; 信息集中处理; 均衡负荷与分布处理; 综合信息服务; 本文对以下几个问题进行简述,来解释计算机网络宏观上的工作方式。 程序员编写java代码 阅读全文
posted @ 2017-10-16 21:44 The_shy 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 一、ThreadLocal类 变量类型可以被声明为ThreadLocal<T>,作用是在并发处理该变量时会为每一个使用该变量的线程都提供一个该变量的副本 该类提供了三个方法: T get(): 返回此线程局部变量中当前线程的值。 void remove(): 删除此线程局部变量中当前变量的值 voi 阅读全文
posted @ 2017-10-09 10:36 The_shy 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 一、线程池适用场景 线程池技术适用于处理并发的大量短连接请求,可以免去线程创建和销毁时损耗的系统资源,这也是所有“池”的目的。开发者可以实现满足自己需求的线程池,在本节结尾处作者会分享一个简单线程池的实现来一起深入学习线程池。 二、java內建线程池 从java5开始,新增了一个Executors工 阅读全文
posted @ 2017-09-26 17:09 The_shy 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 一、java对线程组的支持 Java使用ThreadGroup类来代表线程组,对线程组的控制相当于同时控制这组线程。 在使用Thread的构造方法创建线程时可以指定线程组,Thread类提供了指定线程组的重载构造器,但在创建完成之后就不能改变线程的线程组。若不显示传入一个ThreadGroup对象作 阅读全文
posted @ 2017-09-26 08:36 The_shy 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 一、传统线程通信方式 Object类提供了三个方法:wait()、notify()、notifyAll() 这三个方法必须由同步监视器对象来调用 wait():导致当前线程等待,使用wait方法会导致当前线程释放对同步监视器的锁定,直到其他线程调用该同步监视器的notify()方法或notifyAl 阅读全文
posted @ 2017-09-25 17:21 The_shy 阅读(209) 评论(3) 推荐(0) 编辑
摘要: 一、线程安全问题 线程安全问题是由于代码在执行中的非原子性导致的。如果不能在程序上对线程访问临界区做出控制,则会“偶然出错”。 二、同步代码块 同步监视器,实际上就是要访问的临界区,这个临界区是一个对象,下面代码obj就是同步监视器,在执行下面的代码时,会先获取obj的对象锁,如果该锁已经被其他线程 阅读全文
posted @ 2017-09-23 16:03 The_shy 阅读(208) 评论(0) 推荐(0) 编辑
摘要: java的线程支持提供了一些便捷的工具方法,可以用来控制线程的执行 一、join线程 当前线程可在执行体里面调用其他线程的join方法,调用后当前线程阻塞,直到被join()方法加入的join线程执行完为止。 join方法通常由使用线程的程序调用,将大问题划分成许多小问题,每个小问题分配一个线程,当 阅读全文
posted @ 2017-09-22 13:58 The_shy 阅读(146) 评论(0) 推荐(0) 编辑