MyTest.java
package ZHANG.IO.TestINOUT;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MyTest {
public static void main(String[] args) {
System.out.println("hi:");
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
while(true){
try {
String info = buf.readLine();
if(info!= null){
System.out.println("hi:"+ info);
}else{
break;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
TestInOut.java
package ZHANG.IO.TestINOUT;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class TestInOut implements Runnable{
Process p ;
public TestInOut(){
try {
p = Runtime.getRuntime().exec("java MyTest");
new Thread(this).start();
} catch (IOException e) {
e.printStackTrace();
}
}
public void send(){
OutputStream os = p.getOutputStream();
try {
while(true){
System.out.println("写了吗");
os.write("help/r/n".getBytes());
System.out.println("写了");
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String strInfo;
try {
while(true){
strInfo = br.readLine();
if(strInfo!=null){
System.out.println("i reading Info:"+strInfo);
}else{
return ;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestInOut ti = new TestInOut();
ti.send();
}
}
转载于:https://my.oschina.net/u/175434/blog/699989
分享到:
相关推荐
线程的执行与进程相比更为灵活,线程间的切换成本相对较低。 #### 五、进程与线程的区别与联系 进程与线程的主要区别在于: - **资源拥有方式**:进程拥有自己独立的资源(如内存空间),而线程共享所属进程的所有...
对于初学者来说,理解进程与线程的关系至关重要,因为这有助于深入掌握操作系统的基本原理及应用。下面将详细阐述进程与线程之间的区别及其相互作用。 #### 一、进程的概念 进程是程序的一次执行过程,是系统进行...
在操作系统课程设计中,Linux进程与线程的通信是一个核心且复杂的主题。在这个项目中,学生将深入理解操作系统内核如何管理和协调不同进程和线程之间的数据交换,从而实现高效的任务执行。以下是对这个主题的详细...
了解和掌握进程与线程的区别和交互机制,对于编写高效的多线程程序至关重要。通过互斥锁和信号量等同步工具,我们可以有效地控制线程的并发访问,确保程序的正确性和性能。在实际开发中,合理地使用进程和线程,结合...
总结,理解和掌握C++中的进程与线程是编写高性能、并发应用程序的关键。正确地利用它们可以提高程序的效率,但同时也需要关注同步和通信的细节,以避免潜在的问题。通过实践和学习,开发者能够更好地驾驭这个强大的...
进程与线程是操作系统中重要的概念,它们是执行程序的基础。在计算机系统中,进程可以理解为一个资源分配的基本单位,包含应用程序运行所需的所有资源,如内存、输入/输出设备等。而线程则是执行的基本单元,是进程...
进程、线程、死锁和POSIX规范的系统调用 进程是操作系统中一个独立的执行单元,它拥有自己的虚拟地址空间和系统资源。线程是轻量级的进程,它共享同一个进程的虚拟地址空间和系统资源。理解进程和线程的概念对于...
在计算机科学领域,进程与线程是操作系统中最基础且至关重要的概念。进程是程序执行时的一个实例,每个进程都有自己的独立内存空间,包括代码、数据、堆栈等资源。线程则是进程内的一个执行单元,它共享进程的内存...
为了实现一个简单的进程与线程管理器,我们可以设计一个用户界面(UI),比如Windows Forms或WPF应用,展示当前的进程列表,并提供启动、停止进程以及创建、管理和同步线程的功能。这需要结合使用System.Windows....
进程和线程是计算机操作系统中的两个基本概念,对于任何软件开发者,尤其是系统级或服务器...通过阅读“进程和线程.doc”文档,可以进一步深入学习这两个主题的细节,包括它们的生命周期、调度策略、同步与通信方法等。
鉴于网上和一些教材上对进程和线程说明不是很全面,在对这方面知识学习之后,进行了总结,对操作系统中进程与线程的关系和一些应用进行了整理,希望对有这方面需要的同道中人有所帮助。
嵌入式Linux开发教程深入探讨了进程与线程的概念及其在操作系统中的实现,这对于理解和开发高效、并发的嵌入式应用程序至关重要。以下是这些知识点的详细解释: **一、基础知识:线程和进程** 1. **进程**:是操作...
3. **线程通信与同步**:线程间的通信通常通过共享内存实现,因为它们本就属于同一个进程。线程同步可以使用`pthread_mutex_lock()`和`pthread_mutex_unlock()`进行互斥锁操作,或者使用条件变量(`pthread_cond_t`...
操作系统实验报告——线程与进程同步,主要探讨了在Linux环境下如何实现进程和线程的同步,以解决经典的生产者-消费者问题。该实验旨在帮助学生掌握操作系统提供的同步机制,并深化对经典同步问题的理解。 实验内容...
Windows 下创建进程和线程的 API 在 Windows 操作系统中,创建进程和线程是非常重要的一步骤,对于开发者来说,掌握这方面的知识点是非常必要的。下面我们将详细介绍 Windows 下创建进程和线程的 API。 一、实验...
- **信号量(Semaphore)**:与进程间通信类似,用于控制对共享资源的访问数量。 - **条件变量(Condition Variable)**:线程等待特定条件满足后再继续执行。 - **原子操作(Atomic Operation)**:不可中断的低级...
本文将深入探讨"feiQhongzha"这个场景下,进程与线程的应用。 首先,我们需要理解什么是进程。在操作系统中,进程是正在执行的一个程序实例,它拥有自己的内存空间,包括代码、数据和栈等。每个进程都有独立的资源...