关于线程和进程的使用

最近在研究android自动化测试,为了减小log日志,每次循环执行之后清空日志,在循环体中使用线程,如下:

new Thread(new Runnable() {
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Process p1 = null;
String cmd = "adb logcat -v time > D:\\test.txt";
try {
p1 = Runtime.getRuntime().exec(cmd);
p1.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
).start();

Thread.interrupt();

结果发现线程没有起到作用,不知道问题出在哪儿。。。有知道的大神求指导~

最后直接使用进程的中断来达到目标

String cmd = "adb logcat -v time > D:\\test.txt";

Process pro = Runtime.getRuntime().exec(cmd);
pro.waitFor();
//测试步骤
//清空文件
pro.destory();


当谈到线程进程时,有一些常见的面试问题可以讨论。下面是一些可能的问题和简要的回答: 1. 什么是进程线程进程是操作系统中的一个执行实例,它拥有自己的内存空间、资源和执行环境。线程进程中的独立执行单元,共享进程的资源和上下文。 2. 进程线程之间有什么区别? 进程是独立的执行实体,拥有自己的地址空间和系统资源,而线程进程的一部分,共享相同的地址空间和资源。 3. 什么是并发和并行? 并发是指多个任务交替执行的能力,而并行是指多个任务同时执行的能力。 4. 线程间如何通信? 线程可以通过共享内存或消息传递进行通信。共享内存允许多个线程访问相同的变量或数据结构,但需要进行同步来避免竞争条件。消息传递是通过发送和接收消息来传递数据。 5. 什么是线程同步? 线程同步是确保多个线程按照正确的顺序访问共享资源的机制。常见的线程同步方式包括使用互斥锁、条件变量、信号量等。 6. 什么是死锁? 死锁是指两个或多个线程无限期地等待彼此持有的资源,导致系统无法继续执行。死锁通常发生在多个线程同时请求一组资源,并且每个线程等待其他线程释放其持有的资源。 7. 什么是线程池? 线程池是一组预先创建的线程,用于执行多个任务。它可以提供线程的重用和资源管理,减少线程的创建和销毁开销。 这些问题只是一些基本的面试题,你可以根据需要进行扩展和深入讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值