MFC多线程
书上例子是个排火车的游戏。计算机和人轮流出牌,出的牌不分花色,是随机的1到13中之一。出的牌个上面一张大小一样,那么两张牌之间的牌都归你。玩到一方没牌。书里计算机和人各一...
书上例子是个排火车的游戏。计算机和人轮流出牌,出的牌不分花色,是随机的1到13中之一。出的牌个上面一张大小一样,那么两张牌之间的牌都归你。玩到一方没牌。书里计算机和人各一个线程,但是我觉得不用这样也能行啊。多线程的好处在哪里?
展开
展开全部
我就比较喜欢用多线程, 最简单的想法就是效率高, 比如, 我们只用一个主线程在一个程序里, 每一个时刻都在做一件事情; 而如果我们开辟了多个线程的话, 就可以在同一时刻做多件事情而互不干扰, 各自完成各自的工作。
多线程就好比多任务的操作系统, 同一时刻我们既可以听音乐又可以上网, 而单线程就好比单任务的, 我们需要听完音乐再去上网, 这样花费的时间久很多了。
再比如说, 你的程序里需要不断的更新某项数据, 那你就可以为它开辟一个线程, 让它无限循环着每隔一段时间就在后台进行一次更新操作, 而主线程仍跟用户不间断的交互着, 线程是不是很方便呢?
我是这么理解的。
线程还有个地方是比较通用的, 比如我们的程序中, 有个功能的实现比较耗时, 比如读取庞大的数据库中的信息,并对数据进行计算等操作, 这个耗时比较大, 那么我们就要给它开辟一个线程, 让它在后台进行, 主线程正跟用户做着其他事情的时候, 这个线程便悄悄从后台对数据进行了处理了, 这样用户就不必干等着了,感觉不到你程序运行的慢了; 一般超过5秒的等待时间都要为它开辟一个线程。
就说这么多了~~
多线程就好比多任务的操作系统, 同一时刻我们既可以听音乐又可以上网, 而单线程就好比单任务的, 我们需要听完音乐再去上网, 这样花费的时间久很多了。
再比如说, 你的程序里需要不断的更新某项数据, 那你就可以为它开辟一个线程, 让它无限循环着每隔一段时间就在后台进行一次更新操作, 而主线程仍跟用户不间断的交互着, 线程是不是很方便呢?
我是这么理解的。
线程还有个地方是比较通用的, 比如我们的程序中, 有个功能的实现比较耗时, 比如读取庞大的数据库中的信息,并对数据进行计算等操作, 这个耗时比较大, 那么我们就要给它开辟一个线程, 让它在后台进行, 主线程正跟用户做着其他事情的时候, 这个线程便悄悄从后台对数据进行了处理了, 这样用户就不必干等着了,感觉不到你程序运行的慢了; 一般超过5秒的等待时间都要为它开辟一个线程。
就说这么多了~~
展开全部
你这个应该是网络程序吧。。。?
确实可以不用多线程,用异步网络通讯模式,不会在等待接收数据时阻塞,也省去了线程同步的麻烦。只不过你说的这个例子用多线程写起来简单一点,在线程里阻塞接收消息,一个线程处理固定的某个人的消息,结构简单。
对于单核计算机来说,每个时间点都只有一个线程在运行,CPU不停切换线程使每个线程都有机会运行。
现在计算机多核已经很普遍了,多线程可以充分发挥CPU的效率,多个线程可以由多个CPU核同时运行,速度更快。
确实可以不用多线程,用异步网络通讯模式,不会在等待接收数据时阻塞,也省去了线程同步的麻烦。只不过你说的这个例子用多线程写起来简单一点,在线程里阻塞接收消息,一个线程处理固定的某个人的消息,结构简单。
对于单核计算机来说,每个时间点都只有一个线程在运行,CPU不停切换线程使每个线程都有机会运行。
现在计算机多核已经很普遍了,多线程可以充分发挥CPU的效率,多个线程可以由多个CPU核同时运行,速度更快。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询