搜索
查看: 10078|回复: 2

纤程和线程到底是一种什么关系呢?

  [复制链接]

18

主题

122

帖子

688

积分

三级会员

各种菜

Rank: 4

积分
688
发表于 2011-1-13 11:24:30 | 显示全部楼层 |阅读模式
import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add(
button2={ bottom=234;text=
"button2";left=201;top=146;font=LOGFONT( name="宋体";h=-12 );z=3;right=333;cls="button" };
button={ bottom=234;text=
"button";left=12;top=144;font=LOGFONT( name="宋体";h=-12 );z=2;right=124;cls="button" };
edit={ bottom=106;right=293;left=47;multiline=1;top=16;font=LOGFONT( name=
"宋体";h=-12 );z=1;text="edit";edge=1;cls="edit" }
)
/*}}*/
var task

winform.button2.oncommand =
function(id,event){
    fiber.yield (5)
//暂停纤程,但是不能实现
   
}

//一个纤程执行的函数
func = function(n){
   
for(i=1;n;1){
        winform.edit.text = i;
        win.delay(1000);
   
    }
     
}

winform.button.oncommand =
function(id,event){
    task = fiber.create(func);
//建立纤程
    ret = fiber.resume (task,10);//执行纤程,并传入func参数10
   
   
   
}

winform.show()
win.loopMessage();

/*
对于进程的理解,一个EXE文件运行后就是一个系统内的进程,拥有自己的唯一的进程ID、进程句柄等参数。

对于线程的理解,一个进程包含至少一个线程,线程当中只有一个是主线程,

----------------请问什么是主线程?------------------

对于纤程的理解,一个线程中可以包含很多纤程,但不能并发运行.

--------------请问在线程中,不属于纤程内部的代码能控制纤程的运行和暂停吗?这部分代码运行在线程中吗,属于另一个纤程吗?---------

---------------请问线程中,默认就存在一个主纤程吗?
*/
aardio,让我的心插上翅膀
回复

使用道具 举报

186

主题

2537

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13938
发表于 2011-1-13 12:43:08 | 显示全部楼层

你 fiber.yield (5)以后函数已经没有代码了,已经完全结束了. 怎么暂停? 本来很简单的一个东西,你自已想不通而已.

你 fiber.yield (5)以后函数已经没有代码了,已经完全结束了. 怎么暂停?
本来很简单的一个东西,你自已想不通而已.

点评

也就是说,我点击button2的同时,纤程已经结束了,线程从 fiber.yield (5) 执行,在没有其他代码了  发表于 2011-1-13 13:29
回复

使用道具 举报

0

主题

23

帖子

129

积分

一级会员

Rank: 2

积分
129
发表于 2013-1-30 15:59:39 | 显示全部楼层

理解一下

理解一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-8-22 07:09 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表