enum threadstate {pending,running,stoping,stoped};class basethread{var __thread;var state;basethread(){state = threadstate::pending;__thread = null;}//virsualvar run(){ return false;}//staticvar _basethread_thread_func(var _thread){if(isvalid(_thread.init)) _thread.init();while(_thread.state == threadstate::running){var b = _thread.run();if(b == false) break;}_thread.state = threadstate::stoped;}var start(){state = threadstate::running;__thread = new thread(_basethread_thread_func,this);}var stop(){if(state == threadstate::running){state = threadstate::stoping;__thread.join();__thread = null;state = threadstate::stoped;}}var isrunning(){return state == threadstate::running;}}enum future_status{ready = 0,timeout = 1,deferred = 2 //延迟执行的暂未实现};class future{var _thread = null;var lock = new mutex();future(var func,... params){_thread = new thread(func,params);}var wait_for(var tm){lock.lock();var curtm = time.gettickcount();while(time.gettickcount() - curtm < tm){if(_thread.isdone()) {lock.unlock();return future_status::ready;}sleep(1);}lock.unlock();return future_status::timeout;}var wait(){lock.lock();_thread.join();_thread = null;lock.unlock();}var get(){return _thread.get();}}namespace std{//std::async(var _async(var func,... params){return new future(func,params);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型