子线程的执行问题

markman101 2008-11-02 10:55:11
Winsock 编程中 由于当没有数据到来时recvfrom ()
会处于阻塞状态使程序处于暂停执行所以把recvfrom ()
放在一个线程中
我想问问:当数据到来时 是如何进入这个子线程的 ?
我知道的一般进入子线程方式有1 在主线程中使用Sleep()
2 主线程的时间片用完
...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
markman101 2008-11-02
  • 打赏
  • 举报
回复
WIN平台下的线程是采用竞争机制执行的,
所以你创建一个线程但你不能保证它马上就被执行
,操作系统认为你这个线程可以被执行然后放在CPU
的指令队列里,等它的优先级为最高时才分配给他CPU
时间。所以不能得到非常确定的实时响应。
恩 我现在知道了
那么只要把这个数据接受函数放在子线程中只要数据到来
系统的线程调度程序会自动调用子线程接受数据呀?
wltg2001 2008-11-02
  • 打赏
  • 举报
回复
我知道的一般进入子线程方式有1 在主线程中使用Sleep()
2 主线程的时间片用完
===================================
谁告诉你主线程Sleep就会进入子线程啊,线程调度是系统的事,子线程一启动,它的地位和主线程一样,谁被调用是由系统的线程调度程序的事。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧