C语言 同步 异步

进程同步用来实现程序并发执行时候的可再现性。
一.进程同步及异步的概念
1.进程同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。
2.异步
异步的概念和同步相对。当一个异步过程调用发出后,调用者不会立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
在windows的调用中:

system("notepad");  //同步
ShellExecuteA(0, "open", "notepad", 0, 0, 1);
}   异步
#include 
#include 
#include 
using namespace std;

void openQQ()
{
    ShellExecuteA(0, "open", "D:\\qq\\Bin\\qq.exe", 0, 0, 1);
}

void diagonal(HWND win,int i)
{
    if(i==900){
        return ;
    }else{
        //i+=10;
        SetWindowPos(win,NULL,i,i*5/9,300,400,1);
        Sleep(30);
        diagonal(win,i+10);
    }
}

void moveQQ()
{
    HWND win;
    win = FindWindowA("TXGuiFoundation", "QQ");
    if (win == NULL) {
        cout << "not found" << endl;
    }
    else {
        cout << "get it" << endl;
//      while (1) {
//          ShowWindow(win, SW_HIDE);
//          Sleep(2000);
//          ShowWindow(win, SW_SHOW);
//          Sleep(2000);
//      }


        for(int i=0;i<=900;i+=10){
            SetWindowPos(win,NULL,i,0,300,400,1);
            Sleep(30);
        }
        {
            int i=0;
            while(i<=500){
                i+= 10;
                SetWindowPos(win,NULL,900,i,200,400,1);
                Sleep(30);
            }

        }
        {
            int i = 900;
            do{
                    Sleep(30);
                    i -= 10;
                    SetWindowPos(win,NULL,i,500,300,400,1);

            }while(i);
        }
        {
            int i =500;
            AA:if(i){
                i-=10;
                SetWindowPos(win,NULL,0,i,300,400,1);
                Sleep(30);
                goto AA;
            }
        }
        {
          diagonal(win,0);
        }

    }
}

int main()
{
    //while (1) {
    //  //system("D:\\qq\\Bin\\qq.exe");    //同步
    //  ShellExecuteA(0, "open", "notepad", 0, 0, 1);   //异步
    //  ShellExecuteA(0, "open", "D:\\qq\\Bin\\qq.exe", 0, 0, 1);
    //  Sleep(1000);
    //}
    openQQ();
    Sleep(5000);
    //system("D:\\qq\\Bin\\qq.exe");
    moveQQ();
    int x;
    cin>>x;
    return 0;
}

你可能感兴趣的:(C++(accumulate))