摘要:没有同步就不会造成死锁,过多的同步会造成死锁。 下面这个可能会造成死锁, package com.bjszt.thread.create; //过多的同步方法可能造成死锁public class SynDemo03 { public static void main(String[] args) {
阅读全文
摘要:Java线程:概念与原理 一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个
阅读全文
摘要:TCP三次握手和四次挥手协议 栏目:Web开发 作者:admin 日期:2015-06-13 评论:1 点击: 2,681 次 前言 在面试的过程中,TCP的传输协议经常会出现。以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题。作为一名开发者,无论使用什么样的开发
阅读全文
摘要:一、进程和线程的基础知识 1、进程和线程的概念 进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存) 线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源) 在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。 区别: 1、是否占有资源问题
阅读全文
摘要:java 中,新建一个线程有两种方法,一是继承Thread类,而是实现runnable接口,但都要重写run()方法。由于java中仅仅支持但继承却可以实现多个借口,所以推荐使用实现runnable接口
阅读全文
摘要:Java IO Java NIO 参考 Java IO 在Client/Server模型中,Server往往需要同时处理大量来自Client的访问请求,因此Server端需采用支持高并发访问的架构。一种简单而又直接的解决方案是“one-thread-per-connection”。这是一种基于阻塞式
阅读全文
摘要:Java NIO和IO的主要区别 面向流与面向缓冲 阻塞与非阻塞IO 选择器(Selectors) NIO和IO如何影响应用程序的设计 API调用 数据处理 当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java
阅读全文
摘要:打开 DatagramChannel 接收数据 发送数据 连接到特定的地址 Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 Datag
阅读全文
摘要:创建管道 向管道写数据 从管道读取数据 Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: 查看源代码 打印帮助
阅读全文
摘要:打开 SocketChannel 关闭 SocketChannel 从 SocketChannel 读取数据 写入 SocketChannel 非阻塞模式 connect() write() read() 非阻塞模式与选择器 Java NIO中的SocketChannel是一个连接到TCP网络套接字
阅读全文
摘要:打开 ServerSocketChannel 关闭 ServerSocketChannel 监听新进来的连接 非阻塞模式 Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketCh
阅读全文
摘要:打开FileChannel 从FileChannel读取数据 向FileChannel写数据 关闭FileChannel FileChannel的position方法 FileChannel的size方法 FileChannel的truncate方法 FileChannel的force方法 Java
阅读全文
摘要:在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。 transferFrom() FileChannel的transferFrom()方法可以将数据从源通道传输到FileCh
阅读全文
摘要:Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Chann
阅读全文
摘要:Mina:Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 Mina 版本2.04支持基于 Java NIO 技术的 TC
阅读全文
摘要:Channel的实现 基本的 Channel 示例 Java NIO的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。 正如上面所说,从通道读取数据到
阅读全文
摘要:Buffer的基本用法 Buffer的capacity,position和limit capacity position limit Buffer的类型 Buffer的分配 向Buffer中写数据 flip()方法 从Buffer中读取数据 rewind()方法 clear()与compact()方
阅读全文
摘要:内存映射文件 内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件。有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问。这种解决办法能大大简化修改文件的代码。fileChannel.map(FileChannel.MapMode mode, long p
阅读全文
摘要:Channel 和 Buffer Selector Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pi
阅读全文
摘要:Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,而NIO是基于
阅读全文