2011.11.1好日子,今天博客访问量超过1000了。 2012.01.29,访问量突破2000了. 2012.02.01,访问量突破3000了.继续进步

自动化测试自我培训(脚本语言-TcL进程通信)

上一篇 / 下一篇  2011-10-17 02:05:31 / 个人分类:自动化脚本

Tcl提供了一些用于处理进程的命令.

进程操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元.进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个执行中的程序。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

线程是"进程"中某个单一顺序的控制流。也被称为轻量进程(lightweight processes)。计算机科学术语,指运行中的程序的调度单位。是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。一个线程可以创建撤消另一个线程,同一进程中的多个线程之间可以并发执行。

线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU

线程与进程的区别可以归纳为以下几点:

地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。

通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

调度和切换:线程上下文切换比进程上下文切换要快得多。

在多线程OS中,进程不是一个可执行的实体。

 

而我们需要控制一个进程的话,Tcl,是以获取PID的方法来执行.PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID进程中止后PID被系统回收,可能会被继续分配给新运行的程序。

通过脚本进行启动和杀掉进程:

package require twapi

set eclipse [file join D:/ codesoftware {eclipse-SDK-3.7-win32} eclipse eclipse.exe]
set eclipsepath [file join D:/ codesoftware {eclipse-SDK-3.7-win32} eclipse]

#通过这里获取该No

set No [twapi::create_process $eclipse -startdir $eclipsepath]

#由于获取的No不一定都为数字,需要匹配出来
regexp -nocase {([0-9]+)} $No pidNO
after 20000

通过此关键字杀掉进程
exec taskkill /pid $pidNO


TAG:

 

评分:0

我来说两句

acbennn

acbennn

站在云端看浮云,晕. CSDN的博客:http://blog.csdn.net/bullswu/article/details/6798437

日历

« 2024-04-13  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 59836
  • 日志数: 44
  • 建立时间: 2011-09-18
  • 更新时间: 2013-09-22

RSS订阅

Open Toolbar