什么时候需要用到多线程?多线程的好处有那些?

DailyJob 2008-09-25 11:08:17
想学多线程,但不知道该从何下手,希望大家多给点意见~
...全文
1587 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DailyJob 2008-09-26
  • 打赏
  • 举报
回复
有多线程的高手能提示下我7楼的问题吗???
kakashi0309 2008-09-25
  • 打赏
  • 举报
回复
就是可以同时做N件事情 而不用堵塞在那里

多线程主要处理好同步问题
DailyJob 2008-09-25
  • 打赏
  • 举报
回复
多谢楼上几位XD, 现在正在看关于多线程的例子, 但书上看的不是很明白
大家给我推荐几篇关于多线程的文章吧!谢谢了
cieon_123 2008-09-25
  • 打赏
  • 举报
回复
单线程好比所有工作都要你自己干,那样你只能一样一样来,多进程好比你把这些工作分给若干人,
大家同步进行,同步进行的好处是大家各干各的,除了接口外,其他工作都独立完成,这样不管是
逻辑还是时间上都更加合理,就好象你们单位的若干部门协调工作一样。如果所有部门的工作都要
你们老总一个人干,那就是单线程了。

你明白了多线程的道理,想学多线程就非常简单了,
mfc给你提供了若干实现多线程的函数和机制,直接调用就好,当然你还要注意资源共享,数据独占,
互斥量等一些问题。
菜牛 2008-09-25
  • 打赏
  • 举报
回复
多线程不是必须的,有时候甚至是以牺牲性能为代价的,但是多线程简化了程序设计方式。找本《Windows核心编程》看看。
ncepuzdl 2008-09-25
  • 打赏
  • 举报
回复
简单的顺序执行方式不能满足要求的时候需要考虑多线程实现,或者有些多任务管理时也需要用到多线程,否则无法并行执行不同功能等等吧。
ok1234567 2008-09-25
  • 打赏
  • 举报
回复
多线程
1、就如多了几副碗筷,可以抢占更多的系统资源,加快可以分割成独立执行单元的程序段运行
2、提供良好的操作感受:不在UI主线程执行费时的作业(这些作业以线程运行)
3、响应多个并行的请求
...
moonzero 2008-09-25
  • 打赏
  • 举报
回复
除了《Windows核心编程》
lz还可以看看《Win32多线程程序设计》侯捷译的
DailyJob 2008-09-25
  • 打赏
  • 举报
回复
看到书上的例子有点疑问,知道的朋友帮忙解释下.. .谢了~!

//互斥同步
int WorkID = 10;
const int MAXNUM = 100;
HANDLE hMutex;

DWORD __stdcall ThreadOne( LPVOID lparam )
{
for(;;)
{
WaitForSingleObject( hMutex, INFINITE );
if(WorkID < MAXNUM)
{
WorkID += 1;
Sleep(1000);
printf("WorkID: %i\n",WorkID);
}
ReleaseMutex(hMutex);
}
return 0;
}

DWORD __stdcall ThreadTwo( LPVOID lparam )
{
for(;;)
{
WaitForSingleObject( hMutex, INFINITE );
if(WorkID < MAXNUM)
{
WorkID += 1;
printf("WorkID: %i\n",WorkID);
Sleep(1000);
}
ReleaseMutex(hMutex);
}
return 0;
}

void Main()
{
HANDLE hThread1, hThread2;

//创建线程后并立即执行
hThread1 = ::CreateThread(NULL,0,ThreadOne,NULL,0,NULL);
hThread2 = ::CreateThread(NULL,0,ThreadTwo,NULL,0,NULL);

//为什么在创建线程之后再创建互斥对象? 此时的ThreadOne和ThreadTwo中的hMutex
//应该还是NULL吧!
hMutex = CreateMutex(NULL,false,"mutex");

CloseHandle( hThread1 );
CloseHandle( hThread2 );

while(true)
{
;
}
}

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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