# aardio 范例: 线程管理器



```aardio
//线程管理器
//这个东西主要是用在界面线程里,但为了简化代码,这里用一个控制台来演示

import console;
import thread.manage;

//创建线程管理器
manage = thread.manage(3);

var thrdFunc = function(name){
	
	import win;
	import console;
	
	for(i=1;10;1){ 
		console.log( thread.getId(),name )
		if( !win.delay(1000) ){ 
			//主线程可以用 manage.quitMessage()中断这个循环
			console.log("收到退出指令")
			return;
		}
	} 
	return 67;
}

//创建线程，如果线程池已满会自动等待其他线程结束
manage.create(thrdFunc,"线程1").onEnd = function(...){
	console.log("线程1的回调",...);
} 

//创建线程（忽略线程返回值），如果线程池已满会自动等待其他线程结束
manage.createLite(thrdFunc,"线程2").onEnd = function(){
	console.log("线程2的回调");
}

manage.create(thrdFunc,"线程3");

/*
创建所有线程以后，
必须调用 manage.waitClose() 函数等待所有线程执行完成，
manage.waitClose() 也会负责触发 onEnd 回调，并自动关闭已结束线程的线程句柄。
*/
manage.waitClose(); 

console.pause();
```

