首先申明下,本文为笔者学习《Groovy 程序设计》的笔记,并加入笔者自己的理解和归纳总结。
1、Groovy中,调用Thread的静态方法start来创建线程。
[java] view plain copy def printThreadInfo() { Thread currentThread = Thread.currentThread() println "Current Thread is ${currentThread}" } printThreadInfo() Thread.start { printThreadInfo(); } 返回 Current Thread is Thread[main,5,main] Current Thread is Thread[Thread-1,5,main]2、sleep方法可以用来暂停当前操作。
[java] view plain copy startTime = System.currentTimeMillis() new Object().sleep(2000) endTime = System.currentTimeMillis() println "Thread last ${endTime - startTime} MilliSeconds" 返回 Thread last 2001 MilliSeconds3、如果sleep方法返回true,inturrpt方法可以打断sleep。
[java] view plain copy def interruptSleep(name, flag) { thread = Thread.start(name) { startTime = System.currentTimeMillis() new Object().sleep(2000) { flag } endTime = System.currentTimeMillis() Thread currentThread = Thread.currentThread() println "${currentThread} last ${endTime - startTime} MilliSeconds" } thread.interrupt() } interruptSleep("thread1", true) interruptSleep("thread2", false) 返回 Thread[thread1,5,main] last 2 MilliSeconds Thread[thread2,5,main] last 2001 MilliSeconds4、Daemon线程在主线程退出后不再运行。
[java] view plain copy Thread.start { startTime = System.currentTimeMillis() new Object().sleep(2000) endTime = System.currentTimeMillis() println "Thread last ${endTime - startTime} MilliSeconds" } Thread.startDaemon { startTime = System.currentTimeMillis() new Object().sleep(3000) endTime = System.currentTimeMillis() println "Daemon Thread last ${endTime - startTime} MilliSeconds" } 返回 Thread last 2002 MilliSeconds