问一下关于Socket与Thread的关系 。

王晓蛮 2014-09-12 08:33:29
最近看了一些视频教程。里面使用Socket的时候,会创建一个线程(CreateThread),在线程里面实现Socket.处理。

请问各位大大:
1.Socket的使用的时候,为什么要使用线程来实现。
2.在MFC中创建纯种的时候,为什么申明线程函数的时候,要在前面加上static

...全文
529 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
王晓蛮 2014-09-12
  • 打赏
  • 举报
回复
引用 6 楼 jerry_dqh 的回复:
[quote=引用 4 楼 xviphackl 的回复:] [quote=引用 3 楼 jerry_dqh 的回复:] [quote=引用 2 楼 xviphackl 的回复:] [quote=引用 1 楼 jerry_dqh 的回复:] socket本身与thread没有关系,开一个线程运行socket相关,是怕socket阻塞主线程。 第二个加static可能是为了限制这个线程函数只以在本编译单元使用吧,把代码贴出来看看
非常感谢您的解答: 【代码现在没有在这个电脑上。所以~~非常抱歉。】 按你的意思说的话,也就是说,Socket开线程只是单纯解决Socket因为阻塞造成主程序的假死?[/quote] 是的,socket放在UI类的主线和,socket如果阻塞,可能导致UI界面没有反应,同时也是为了性能好一点。[/quote] 请问在使用线程的时候,有什么需要注意的么。~~有点不懂这个。~~[/quote] 使用上注意不要频繁创建和删除线程,如果需要这样,使用线程池,你可以稍微看一下线程相关的知识。[/quote] 嗯,非常感谢。、、、、
王晓蛮 2014-09-12
  • 打赏
  • 举报
回复
引用 5 楼 lovesmiles 的回复:
还是多一点看书吧,对socket的操作,比如完成端口模型,是需要用到线程池的。 阻塞主线程,只是同步阻塞socket才会发生。不同的io模型是不一样的。 如果纯说socket和线程,可以说毫无关系。但如果真要写一点实用的东西,这二样又是难兄弟,缺一不可。
可以推荐一下有哪些这方面的书籍?
碼上道 2014-09-12
  • 打赏
  • 举报
回复
引用 4 楼 xviphackl 的回复:
[quote=引用 3 楼 jerry_dqh 的回复:] [quote=引用 2 楼 xviphackl 的回复:] [quote=引用 1 楼 jerry_dqh 的回复:] socket本身与thread没有关系,开一个线程运行socket相关,是怕socket阻塞主线程。 第二个加static可能是为了限制这个线程函数只以在本编译单元使用吧,把代码贴出来看看
非常感谢您的解答: 【代码现在没有在这个电脑上。所以~~非常抱歉。】 按你的意思说的话,也就是说,Socket开线程只是单纯解决Socket因为阻塞造成主程序的假死?[/quote] 是的,socket放在UI类的主线和,socket如果阻塞,可能导致UI界面没有反应,同时也是为了性能好一点。[/quote] 请问在使用线程的时候,有什么需要注意的么。~~有点不懂这个。~~[/quote] 使用上注意不要频繁创建和删除线程,如果需要这样,使用线程池,你可以稍微看一下线程相关的知识。
勤奋的小游侠 2014-09-12
  • 打赏
  • 举报
回复
还是多一点看书吧,对socket的操作,比如完成端口模型,是需要用到线程池的。 阻塞主线程,只是同步阻塞socket才会发生。不同的io模型是不一样的。 如果纯说socket和线程,可以说毫无关系。但如果真要写一点实用的东西,这二样又是难兄弟,缺一不可。
王晓蛮 2014-09-12
  • 打赏
  • 举报
回复
引用 3 楼 jerry_dqh 的回复:
[quote=引用 2 楼 xviphackl 的回复:] [quote=引用 1 楼 jerry_dqh 的回复:] socket本身与thread没有关系,开一个线程运行socket相关,是怕socket阻塞主线程。 第二个加static可能是为了限制这个线程函数只以在本编译单元使用吧,把代码贴出来看看
非常感谢您的解答: 【代码现在没有在这个电脑上。所以~~非常抱歉。】 按你的意思说的话,也就是说,Socket开线程只是单纯解决Socket因为阻塞造成主程序的假死?[/quote] 是的,socket放在UI类的主线和,socket如果阻塞,可能导致UI界面没有反应,同时也是为了性能好一点。[/quote] 请问在使用线程的时候,有什么需要注意的么。~~有点不懂这个。~~
碼上道 2014-09-12
  • 打赏
  • 举报
回复
引用 2 楼 xviphackl 的回复:
[quote=引用 1 楼 jerry_dqh 的回复:] socket本身与thread没有关系,开一个线程运行socket相关,是怕socket阻塞主线程。 第二个加static可能是为了限制这个线程函数只以在本编译单元使用吧,把代码贴出来看看
非常感谢您的解答: 【代码现在没有在这个电脑上。所以~~非常抱歉。】 按你的意思说的话,也就是说,Socket开线程只是单纯解决Socket因为阻塞造成主程序的假死?[/quote] 是的,socket放在UI类的主线和,socket如果阻塞,可能导致UI界面没有反应,同时也是为了性能好一点。
王晓蛮 2014-09-12
  • 打赏
  • 举报
回复
引用 1 楼 jerry_dqh 的回复:
socket本身与thread没有关系,开一个线程运行socket相关,是怕socket阻塞主线程。 第二个加static可能是为了限制这个线程函数只以在本编译单元使用吧,把代码贴出来看看
非常感谢您的解答: 【代码现在没有在这个电脑上。所以~~非常抱歉。】 按你的意思说的话,也就是说,Socket开线程只是单纯解决Socket因为阻塞造成主程序的假死?
碼上道 2014-09-12
  • 打赏
  • 举报
回复
socket本身与thread没有关系,开一个线程运行socket相关,是怕socket阻塞主线程。 第二个加static可能是为了限制这个线程函数只以在本编译单元使用吧,把代码贴出来看看

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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