老是对多线程不感冒怎么办? 看了《Windows核心编程》第6--12章,但是老是硬着头皮看,其实看不怎么明白,然后又看了《Win32多线程程序设计》,当时感觉是明白了,但是好像没消化,还是不会做多线程程序,到底该怎么学多线程编程,大家给点意见吧,你们都是怎么学的?先谢谢啦。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用自己的行为来解释给你听.其实一个人就相当于一个在运行计算机.假如你起了一个 给一大堆鸡蛋分类 的任务,并且你的左手 和 右手 可以一起工作. 这就相当于2个线程.而当你速度过快 出现两只手同时拿起了某一个鸡蛋 问题就出现了. 但是生活中你却很少碰到这种问题. 原因是你是你意识到了. 所以你大脑会控制等先动的那只手动完, 再使用另外一只手. 这其实就是多线程中的锁的概念.等待前面的人释放大家都在共用的资源. 左手的流程 do{ 锁定 左手操作 解除锁定)while(工作未停止);右手的流程 do{ 锁定 右手操作 解除锁定)while(工作未停止);上面是正常的流程. 假如你某个时候大脑出问题了. 左手操作完. 忘记解除锁定了. 会产生上面结果? 右手会一直等待左手的操作解除. 而左手也会进入等待操作解除流程. 这样就出现了死锁.自己多思考思考. 计算机所有配件几乎都跟人体各个器官功能类似. 所以那个啥啥啥的也没啥了不起. 他其实只是综合了这个世界物体的规则而已.人死了可能是关机, 也有可能是重启(诈尸) 哈哈 当遇到实际问题需要用到多线程的时候你自然就能更深刻的理解了举个例子做一个基于winsocket的点对点聊天程序采用阻塞模式accept客户端连接如果不用多线程accept的时候程序就会挂起采用多线程操作就会十分流畅有兴趣的话可以试试也没几行代码 这个建议不错,顺便又可以学习socket编程,谢谢。 没想法就别去看《windows核心编程》,这玩意太枯燥-我感觉,当你激起兴趣时在去看,抓重点。关于多线程 你得去经常没事玩线程,去玩起线程的函数,慢慢体会,调试 跟踪什么的 你必然会发现奇怪的东西,比如同个东西 两次结果不同哈哈 自己去挖吧,别人给你说的 你看书的 是没很大帮助,得自己去敲代码 求助!MFC中基本对话框代码的添加 关于网络通信的小问题? 快捷键注册失败 隐式链接dll,当应用程序调用完dll中某个函数,是否会自动free这个dll?即这个dll是否会释放内存。隐式链接与显式链接,效率怎样? 怎么建立ADO数据库? VC 嵌入式软件 出现死机 用WinINet登录网站时遇到的问题 vc能不能调用dephi写的dll? c++怎样计算平方或立方??? 给你你想要的软件(仅供学习用) [续]win7系统拖动最大化了的窗口,该窗口自动被缩小? 资源管理器中,选择平铺时,图标大小为48*48,这样大小的图标应该怎样获取?
do
{
锁定
左手操作
解除锁定
)while(工作未停止);右手的流程
do
{
锁定
右手操作
解除锁定
)while(工作未停止);上面是正常的流程. 假如你某个时候大脑出问题了. 左手操作完. 忘记解除锁定了. 会产生上面结果? 右手会一直等待左手的操作解除. 而左手也会进入等待操作解除流程. 这样就出现了死锁.自己多思考思考. 计算机所有配件几乎都跟人体各个器官功能类似. 所以那个啥啥啥的也没啥了不起. 他其实只是综合了这个世界物体的规则而已.人死了可能是关机, 也有可能是重启(诈尸) 哈哈
举个例子
做一个基于winsocket的点对点聊天程序
采用阻塞模式accept客户端连接
如果不用多线程accept的时候程序就会挂起
采用多线程操作就会十分流畅
有兴趣的话可以试试
也没几行代码
关于多线程 你得去经常没事玩线程,去玩起线程的函数,慢慢体会,调试 跟踪什么的 你必然会发现奇怪的东西,比如同个东西 两次结果不同哈哈 自己去挖吧,别人给你说的 你看书的 是没很大帮助,得自己去敲代码