• 多线程


    多线程的好处:

    1.可以节省内存空间。

    2.进程与进程切换。需要交换整个内存空间。多线程可以节省时间。线程与线程之间的切换只需要一个运行环境的改变。执行效率比较高。。。

    #include<windows.h>

    #include<iostream>

    DWORD API ThreadFun();

    int main()

    {

    HANDLE hThread;

    hTread=CreateThread(NULL,0,ThreadFun,0,Null);

    CloseHandle(hThread);

    cout<<"Main Thread is running !";

    return 0;

    }

    DWORD API TreadFun()

    {

    cout<<"Tread is Running!";

    return 0;

    }

    主线程退出。进程就会退出,那么在进程里的所有资源以及线程都将会退出。

    所有上面TreadFun是没有执行的机会的。

    也就是说创建线程并不一定会立刻给他分配时间片。也就是说上说程序,在创建线程之后并没有给线程分配时间片。而主线程的时间片执行完之后。主线程就会退出。主线程退出那么进程就会退出。进程退出则创建的线程就没了执行机会。

    互斥信号量对象:与线程相关。CreateMutex(NULL,TRUR,NULL);信号量处于未通知状态。信号量对象主线程拥有。并此时信号量在主线程的计数为1;

    WaitForSingleObject(hMutex,);release();

    //没有消息过来的时候。recv接收函数就会阻塞。线程就会切换。。。相同的。码流没到来的时候。那么主线程就会等待,其他线程就会执行。。。回调函数就会执行。。。2.由于接收消息时,可能会有消息延迟。则导致RecvFrom函数等待。进而导致线程被挂起。所以应该将接收消息的模块单独放在另一个线程内。使之只负责接收消息。在创建线程时。应当传递传入两个参数。一个是绑定的套接字。另一个则是接收数据的窗口句柄。以便抛消息到此窗口上。另:抛消息时可以另带参数,进而可以将接收到数据随消息传送到窗口内。。。。在接收消息的线程中应当使用一个while(true)死循环。以便此线程可以一直运行下去。一直不停的接收数据。

       最重要的是不需要考虑线程之间切换的问题。。。因为CPU的时间片很短,没必要增加手动切换线程。实际上这样会大大增大程序维护的成本。。。

  • 相关阅读:
    程序由多个文件组成时、 头文件
    c++ 数组,变量,指针,引用, 初始化,赋值
    linux 远程装机
    linux中firewall与iptables防火墙服务
    linu samba服务
    linux 中iscsi服务
    Linux中apache服务
    linux dns高速缓存
    linux 网络配置
    linux 数据库管理
  • 原文地址:https://www.cnblogs.com/sunshinewave/p/2979972.html
Copyright © 2020-2023  润新知