• test-cache-0


    g++ main.cpp -fpermissive -lpthread -O0

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    pthread_t thread_id;
    static pthread_mutex_t share_mutex = PTHREAD_MUTEX_INITIALIZER;
    //std::atomic count;
    int count=0;

    int count1[4000];
    int count2[4000];
    int count3;

    sem_t m_vp1_sem;

    #define barrier()    __asm__ __volatile__( "": : :"memory")
    #define dmb()        __asm__ __volatile__( "dmb": : :"memory")

    volatile int m_exit=0;
    void thread_routine (void *arg)
    {
        int j=0;
        while(!m_exit){
            j++;

            count=0;
            usleep(100000);

            //pthread_mutex_lock(&share_mutex);
            for(int i=0;i<4000;i++){
                count1[i]=j;
                count2[i]=j;
                count3=j;
            }
            //printf("1\n");
            //pthread_mutex_unlock(&share_mutex);
            //dmb();
            //barrier();
            count=1;
            if(count){
                //printf("*\n");
                //sem_post(&m_vp1_sem);
            }
            usleep(100000);
        }
        return;
    }


    int  main()
    {
        sem_init(&m_vp1_sem, 0, 0);
        pthread_create (&thread_id, NULL, thread_routine, NULL);

        while(!m_exit){
            //sem_wait(&m_vp1_sem);
            //pthread_mutex_lock(&share_mutex);

            if(count){//printf("==\n");
                for(int i=3999;i>=0;i--){
                    int c1 = count1[i];
                    int c2 = count2[i];
                    if((c1!=count3)||(c2!=count3)){
                        printf("%d %d %d %d \n", i, c1, c2,count3);
                    }
                }
            }

            //pthread_mutex_unlock(&share_mutex);
            //std::cout << "cc"<     }
        return 0;
    }

  • 相关阅读:
    windows onlyoffice教程
    PyQT5 QMessageBox对话框设置
    计算机毕业设计springboot计算机类专业工程认证资料管理系统+e65c9源码+系统+程序+lw文档+部署
    如何为测试自动化准备您的敏捷 QA 团队
    探索Django REST框架构建强大的API
    adb常见命令
    网络安全(黑客)自学
    Unity | Shader(着色器)和material(材质)的关系
    如何启动一个Vue项目
    基于PHP的汉服文化交流平台 毕业设计-附源码240903
  • 原文地址:https://blog.csdn.net/wmzjzwlzs/article/details/126918457