下面再详细的说下子线程和主线程的问题t1 = Thread.new { sleep 100 }t2 = Thread.new do if Thread.current == Thread.main #不会输出 puts 'this is main thread!' end 1.upto(1000) { sleep 0.1 }endcount = Thread.list.size #3, 当前有三个线程,一个是运行该脚本的主线程(main thread),一个是t1,还有t2,由于他们正在做循环操作所以没有结束退出,还在当前线程列表中if Thread.list.include?(Thread.main) #当前就在主线程的环境下 puts 'Main thread is alive' #一直都会输出endif Thread.current == Thread.main #因为当前环境就在主线程下操作和运行的,所以为true puts 'I am main thread' #输出end上面用到了几个线程的方法,作用从字面上就可以看出来,主要是可以比较明确的理解下主线程和子线程的关系,在上一篇线程的讲解中已经提到了线程是进程的执行单元。当进程被初始化后,主线程就被创建了。对于绝大多数的应用程式来说,通常仅需要有一个主线程。尽管如此进程也能够创建额外的线程。
2008-08-06 10:36:35, 838 reviews, comment
send to mailbox
Thread学习-1
少女,不点下广告吗!
all by shitou
blog comments powered by Disqus