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

  • 相关阅读:
    如何拼接两张图片?
    Vue3 如何实现一个全局搜索框
    Linux下基于GTK人脸识别界面设计
    Stable Diffusion教程
    【云原生之k8s】kubeadm搭建k8s集群
    SpringCloud-Hystrix服务熔断与降级工作原理&源码
    微服务实战 06 分布式事务常见解决方案
    JavaWeb:JavaWeb技术架构演进
    windows 电脑改成安卓桌面
    Java NIO Selector 的使用
  • 原文地址:https://blog.csdn.net/wmzjzwlzs/article/details/126918457