zoukankan      html  css  js  c++  java
  • 时间同步


    定时的要完成一些事情。时间的线程同步。

    操作系统中,每打开一个窗口,每个窗口都有一个地址,操作系统管理他是通过链表来管理的。

    #include <stdio.h>
    #include <stdlib.h>
    #include <Windows.h>
    
    //单独定时间同步通信
    //单独定时器只能用于同步通信,不能用于跨线程之间的通信,异步就不能通信了
    void main1() { while (1) { printf("fangfang "); Sleep(2000); } system("pause"); } void main2() { HANDLE timer = CreateWaitableTimer(NULL, TRUE, NULL);//创建定时器 if (timer == NULL) { return; } else { LARGE_INTEGER time; time.QuadPart = -50000000;//2秒 //10 ^-7 秒 0.1微妙 SetWaitableTimer(timer, &time, 0, NULL, 0, NULL);//设置定时器等待2秒 if (WaitForSingleObject(timer, INFINITE) == WAIT_OBJECT_0) { printf("等待成功"); } else { printf("等待失败"); } } system("pause"); } HANDLE timer; DWORD WINAPI go1(void *p) { MessageBoxA(0, "1", "1", 0); timer = CreateWaitableTimer(NULL, TRUE, NULL);//创建定时器 LARGE_INTEGER time; time.QuadPart = -50000000;//2秒 //10 ^-7 秒 0.1微妙 SetWaitableTimer(timer, &time, 0, NULL, 0, NULL);//设置定时器等待2秒 } DWORD WINAPI go2(void *p) { MessageBoxA(0, "2", "2", 0); printf("等待成功"); } int main() { HANDLE hd=CreateThread(NULL, 0, go1, NULL, 0,NULL); WaitForSingleObject(hd, INFINITE); if (WaitForSingleObject(timer, INFINITE) == WAIT_OBJECT_0) { CreateThread(NULL, 0, go2, NULL, 0, NULL); printf("等待成功"); } else { printf("等待失败"); } getchar(); }
  • 相关阅读:
    fatal: unable to auto-detect email address (got 'tim@newton.(none)')的解决方法
    使用git命令提示“不是内部或外部命令
    Windows系统下安装 CMake
    php与mysql的连接
    array_merge和加号的区别
    可重入锁的实现
    redis scan
    redis主丛,哨兵和集群的区别
    高并发架构系列:Redis并发竞争key的解决方案详解
    laravel上传图片
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5783430.html
Copyright © 2011-2022 走看看