- 积分
- 86
- 注册时间
- 2004-12-22
- 仿真币
-
- 最后登录
- 1970-1-1
|
用timer函数实现了多线程的效果,两个函数可以并行地运行了,
程序中主线程设了约11s,timer线程设了10s,主线程多运行一会儿。
主线程中需要不时调用pause,否则Timer线程抢不到啊!!
下面是输出结果:
Timer线程(TimerFcn):17-Dec-2005 11:39:43
主线程: 17-Dec-2005 11:39:43
主线程: 17-Dec-2005 11:39:44
Timer线程(TimerFcn):17-Dec-2005 11:39:44
主线程: 17-Dec-2005 11:39:44
Timer线程(TimerFcn):17-Dec-2005 11:39:45
主线程: 17-Dec-2005 11:39:45
主线程: 17-Dec-2005 11:39:45
主线程: 17-Dec-2005 11:39:46
Timer线程(TimerFcn):17-Dec-2005 11:39:46
主线程: 17-Dec-2005 11:39:46
主线程: 17-Dec-2005 11:39:47
Timer线程(TimerFcn):17-Dec-2005 11:39:47
主线程: 17-Dec-2005 11:39:47
主线程: 17-Dec-2005 11:39:48
Timer线程(TimerFcn):17-Dec-2005 11:39:48
主线程: 17-Dec-2005 11:39:48
Timer线程(TimerFcn):17-Dec-2005 11:39:49
主线程: 17-Dec-2005 11:39:49
主线程: 17-Dec-2005 11:39:49
Timer线程(TimerFcn):17-Dec-2005 11:39:50
主线程: 17-Dec-2005 11:39:50
主线程: 17-Dec-2005 11:39:50
Timer线程(TimerFcn):17-Dec-2005 11:39:51
主线程: 17-Dec-2005 11:39:51
主线程: 17-Dec-2005 11:39:51
Timer线程(TimerFcn):17-Dec-2005 11:39:52
Stopped!
主线程: 17-Dec-2005 11:39:52
主线程: 17-Dec-2005 11:39:52
主线程: 17-Dec-2005 11:39:53
主线程: 17-Dec-2005 11:39:53
主线程: 17-Dec-2005 11:39:54
总共运行时间:11.063
代码:
function timertest
%例:timer实现多线程
%作者:nostalgica
%我的Blog: nostalgica.blogcn.com
t = timer('TimerFcn',{@mycallback,'Hello Matlab!'}, 'Period', 1,'stopfcn',{@stopcallback,'Stopped!'},'TaskstoExecut',10,'execution','fixedRate');
start(t);
timestart=clock;
while(1)
if etime(clock,timestart)>=11%主线程约11s,timer设了10s,主线程多运行一会儿。
break;
end
pause(.5);%要是不pause,Timer线程抢不到啊!!
disp(['主线程: ' datestr(clock)]);
end
stop(t);
disp(['总共运行时间:' num2str(etime(clock,timestart))]);
function mycallback(obj, event,string_arg)
txt1 = 'Timer线程';
txt2 = string_arg;
event_type = event.Type;
event_time = datestr(event.Data.time);
msg = [ txt1 '(' event_type '):' event_time];
disp(msg);
function stopcallback(obj, event,string_arg)
txt2 = string_arg;
disp(txt2); |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|