Groovy里使用Runnable实现多线程

538 阅读1分钟

代码1:

package jerry;

Runnable run = { println 'run in thread: ' + Thread.currentThread().getId() }

run.run();
println "main thread:" + Thread.currentThread().getId();
// list.each { println it } // or list.each(this.&println)

测试结果:

直接调用Runnable的run方法,其方法体内的代码也在主线程内执行:

代码2:

package jerry;

Runnable run = { println 'run in thread: ' + Thread.currentThread().getId() }

new Thread(run).start();

println "main thread:" + Thread.currentThread().getId();
// list.each { println it } // or list.each(this.&println)

此时Runnable执行体是在新启动的线程内执行了:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":