• 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;
    }

  • 相关阅读:
    Substring 在BCL和CLR里面搞了啥
    约束的概念和分类(包含外键约束)
    React工具
    计算机毕业设计node.js+vue+Web的校园疫情大数据平台
    02 C++STL之容器
    如何在Access2007中使用日期类型查询数据
    Leetcode刷题方法总结---链表全解
    详解【数据结构】栈和队列
    数据库常用指令
    分析几道关于死锁的真题
  • 原文地址:https://blog.csdn.net/wmzjzwlzs/article/details/126918457