体系结构—管道-过滤器风格

import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.Pipe;

public class Fp {
	public static void main(String[] args) throws IOException {
		Pipe lyy_pipe = Pipe.open();
		final Pipe.SinkChannel lyy_psic = lyy_pipe.sink();
		final Pipe.SourceChannel lyy_psoc = lyy_pipe.source();

		Thread tPwriter = new Thread() {
			public void run() {
		    try { 
		    	// 创建一个线程,利用管道的写入口Pipe.SinkChannel类型的psic往管道里写入指定ByteBuffer的内容
	lyy_psic.write(ByteBuffer.wrap("Hello,Pipe!".getBytes("utf-16BE")));
		    } 
		    catch (IOException e) {
		      	e.printStackTrace();
		    	 }
		   }
	    };
		Thread tPreader = new Thread() {
			public void run() {
				int lyy_bbufferSize = 1024 * 2;
			    ByteBuffer lyy_bbuffer = ByteBuffer.allocate(lyy_bbufferSize);
			    try {
			     // 创建一个线程,利用管道的读入口Pipe.SourceChannel类型的psoc将管道里内容读到指定的ByteBuffer中
			    	lyy_psoc.read(lyy_bbuffer);	     
			    	lyy_bbuffer.rewind();	    
			    	System.out.println("Content:" + lyy_bbuffer.asCharBuffer());
			    } 
			    catch (IOException e) {
			    	e.printStackTrace(); 
			    }
		     }
	      };
		tPwriter.start();
	    tPreader.start();
	}  
}

运行结果:


版权声明:本文为LY_624原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。