ruby 多线程及查看程序运行情况

来源:互联网 发布:数据库安全问题分类 编辑:程序博客网 时间:2024/04/29 08:42

每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。
线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,称为多线程。
Ruby 中我们可以通过 Thread 类来创建多线程,Ruby的线程是一个轻量级的,可以以高效的方式来实现并行的代码。

def function1    i = 0    while i<=50        puts "func1 at : #{Time.now}"        sleep(2)        i=i+1    endenddef function2    j = 0    while j<=50        puts "func2 at : #{Time.now}"        sleep(1)        j=j+1    endendstart = Time.nowt1 = Thread.new{function1}t2 = Thread.new{function2}t1.joint2.joinend_time = Time.nowputs "used :"+(end_time-start).to_s

查看程序运行占用cpu情况:top -p $(pgrep ruby)
这里写图片描述


pstack查看进程所有线程的执行栈,里面有当前执行到哪一个函数, 函数的调用关系等:pstack $(pgrep ruby)
这里写图片描述


查看程序进程树:pstree -p pid
这里写图片描述

0 0
原创粉丝点击