线程和进程的区别与联系。最好能详细的讲解一下线程的用法和进程的用法,谢谢!!!!

解决方案 »

  1.   

    补一点哈,进程不执行任何代码,是不活泼的,线程是用来执行代码的,一个进程一定要拥有一个主线程用于执行代码,具体的楼主可以去看看系统原理方面的书(如windows核心编程),毕竟书上写得很详细,能理解更好更深
      

  2.   

    小例子:
    UINT HandleSubmitProc(LPVOID); //声明一个全局的线程处理函数//在你的程序中创建一个线程:
    m_pSubmitThread = AfxBeginThread(HandleSubmitProc, this); //处理发送线程
    //m_pSubmitThread是你程序中的一个CWinThread指针///////////////////////////////////////////////////////////////////////////////
    // 函数名: HandleSubmitProc
    // 功  能: 发送短信处理函数
    // 参  数: void指针
    // 返回值: 0
    ///////////////////////////////////////////////////////////////////////////////
    UINT HandleSubmitProc(LPVOID pParam)
    {
    CHandler *pHandler = (CHandler *)pParam;
    pHandler->printf("[%d][HANDLER]: HandleSubmitProc线程开始",
    pHandler->m_nHandlerNum);
    pHandler->SendSMToSMC(); //调用实际处理函数
    pHandler->m_nCanTerminate++;
    pHandler->printf("[%d][HANDLER]: HandleSubmitProc线程退出",
    pHandler->m_nHandlerNum);
    return 0;
    }///////////////////////////////////////////////////////////////////////////////
    // 函数名: SendSMToSMC
    // 功  能: 提交短信到SMC
    // 参  数: 无
    // 返回值: 无
    ///////////////////////////////////////////////////////////////////////////////
    void CHandler::SendSMToSMC()
    {
    CNodeSubmit *pCurrNode;
    time_t nTimeNow;
    CNodeSubmit PackSubmit;
    SUBMIT_SM SubmitSM;
    DATA_PACKET SendData;
    RTCS_CTbool bFinded;
             //...
    while(m_bRun)
    {
                  //...
    if(SendToServer(&SendData, m_pSocketMT) == TRUE)
    {
    printf("[%d][SUBMIT]: Socket发送成功", m_nHandlerNum);
    }
    else
    printf("[%d][SUBMIT]: Socket发送失败", m_nHandlerNum);
    Sleep(THREAD_DELAY); //临时将线程挂起THREAD_DELAY毫秒,以备别的线程使用CPU
                  //...
    }
    }大概就是这样的,还是看看书上讲的,自己试试最好。