华为云国际站代理商充值:c语言 线程间通信

C语言中线程间通信的方式有多种,以下是几种常用的方法:

  1. 全局变量和互斥锁(Mutex)
    使用全局变量来存储线程之间共享的数据,并使用互斥锁来确保对共享数据的互斥访问。

    #include <pthread.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int shared_data = 0;
    pthread_mutex_t lock;
    
    void *thread_func(void *arg) {
        pthread_mutex_lock(&lock);
        shared_data++;
        printf("Thread %d: %dn", *(int *)arg, shared_data);
        pthread_mutex_unlock(&lock);
        return NULL;
    }
    
    int main() {
        pthread_t threads[2];
        int thread_ids[2] = {1, 2};
    
        pthread_mutex_init(&lock, NULL);
    
        for (int i = 0; i < 2; i++) {
            pthread_create(&threads[i], NULL, thread_func, &thread_ids[i]);
        }
    
        for (int i = 0; i < 2; i++) {
            pthread_join(threads[i], NULL);
        }
    
        pthread_mutex_destroy(&lock);
        return 0;
    }
  2. 条件变量(Condition Variable)
    条件变量可以用来让一个线程等待另一个线程发出某个信号,以实现线程间的同步。

    #include <pthread.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int ready = 0;
    pthread_mutex_t lock;
    pthread_cond_t cond;
    
    void *thread_func(void *arg) {
        pthread_mutex_lock(&lock);
        while (!ready) {
            pthread_cond_wait(&cond, &lock);
        }
        printf("Thread %d is runningn", *(int *)arg);
        pthread_mutex_unlock(&lock);
        return NULL;
    }
    
    int main() {
        pthread_t threads[2];
        int thread_ids[2] = {1, 2};
    
        pthread_mutex_init(&lock, NULL);
        pthread_cond_init(&cond, NULL);
    
        for (int i = 0; i < 2; i++) {
            pthread_create(&threads[i], NULL, thread_func, &thread_ids[i]);
        }
    
        sleep(1); // 模拟一些操作
        pthread_mutex_lock(&lock);
        ready = 1;
        pthread_cond_broadcast(&cond);
        pthread_mutex_unlock(&lock);
    
        for (int i = 0; i < 2; i++) {
            pthread_join(threads[i], NULL);
        }
    
        pthread_mutex_destroy(&lock);
        pthread_cond_destroy(&cond);
        return 0;
    }
  3. 信号量(Semaphore)
    信号量可以用来控制对共享资源的访问。

    #include <pthread.h>
    #include <semaphore.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    sem_t sem;
    
    void *thread_func(void *arg) {
        sem_wait(&sem);
        printf("Thread %d is runningn", *(int *)arg);
        sem_post(&sem);
        return NULL;
    }
    
    int main() {
        pthread_t threads[2];
        int thread_ids[2] = {1, 2};
    
        sem_init(&sem, 0, 1);
    
        for (int i = 0; i < 2; i++) {
            pthread_create(&threads[i], NULL, thread_func, &thread_ids[i]);
        }
    
        for (int i = 0; i < 2; i++) {
            pthread_join(threads[i], NULL);
        }
    
        sem_destroy(&sem);
        return 0;
    }

这三种方法是C语言中常用的线程间通信方式,每种方法都有其适用的场景和优缺点,具体选择哪种方法需要根据具体的应用需求来决定。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/192679.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年7月24日 20:45
下一篇 2024年7月24日 20:53

相关推荐

  • 华为云国际站代理商注册:佛山网站推广排名

    华为云国际站代理商注册:佛山网站推广排名 随着数字化转型的不断推进,越来越多的企业开始注重云计算服务的选择,尤其是在全球市场竞争日益激烈的背景下,选择合适的云服务商成为了企业成功的关键。而作为全球领先的云计算服务提供商之一,华为云在全球市场尤其是国内市场具有强大的竞争力。本文将以“华为云国际站代理商注册:佛山网站推广排名”为主题,结合华为云服务器产品的优势,…

    2024年12月4日
    47700
  • 华为云代理商:防网站攻击软件

    华为云代理商:防网站攻击软件的优势与应用 在数字化时代,网络安全已经成为企业运营中不可忽视的重要环节。随着互联网应用的普及,各类网络攻击和安全威胁频繁发生,网站成为了黑客攻击的主要目标。为了保护企业网站免受攻击,越来越多的企业选择采用防网站攻击软件。而作为全球领先的云服务提供商,华为云不仅提供强大的云计算资源,还通过其全面的安全防护方案,为用户提供强有力的保…

    2025年3月21日
    48800
  • 华为云国际站代理商充值:佛山工商注册登记

    华为云国际站代理商充值:佛山工商注册登记 在当前数字化经济的推动下,越来越多企业认识到云计算的重要性,纷纷选择云服务来提升业务的灵活性和竞争力。华为云作为领先的云计算服务提供商,依托其技术优势和丰富的产品生态,吸引了众多企业用户。而对于佛山工商注册登记的企业,通过成为华为云国际站代理商,可以实现便捷的充值和账户管理,同时享受华为云带来的高性能和可靠性。 华为…

    2024年11月7日
    45000
  • 华为云国际站代理商:cdn有的图片不显示

    华为云国际站代理商:CDN有的图片不显示问题解析与解决方案 在使用华为云CDN(内容分发网络)服务时,许多代理商和用户可能会遇到一些图片无法显示的问题。CDN作为加速网络内容传输的关键技术,通常能大大提升网站的访问速度和稳定性。然而,偶尔会出现某些图片无法加载的情况,这不仅影响用户体验,还可能对网站的运营产生负面影响。本文将深入分析CDN图片不显示问题的原因…

    2024年11月29日
    50200
  • 华为云国际站充值:韩国幼儿园网站模板

    华为云国际站充值:打造高效安全的韩国幼儿园网站模板 一、数字化时代幼儿园网站的独特价值 在韩国教育国际化浪潮中,幼儿园网站已成为家长了解教育理念的第一窗口。数据显示,73%的韩国家长通过网站评估幼儿园品质。一个优秀的网站需具备:多语言切换功能满足国际家庭需求,高清媒体展示区呈现教学场景,移动端自适应设计确保随时访问,以及安全的信息提交系统保护家长隐私。这些特…

    2025年6月27日
    39800

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/