chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多線程兩種同步方式的操作方法分析

電子設(shè)計 ? 來源:電子工程網(wǎng) ? 作者:張駿 ? 2021-06-26 14:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在線程對共享相同內(nèi)存操作時,就會出現(xiàn)多個線程對同一資源的使用,為此,需要對這些線程進行同步,以確保它們在訪問共享內(nèi)存的時候不會訪問到無效的數(shù)值。

以下是線程的幾種同步方式:

1、 互斥量。

通過使用pthread的互斥接口保護數(shù)據(jù),確保同一時間只有一個線程訪問數(shù)據(jù)?;コ饬繌谋举|(zhì)上講是一把鎖,在訪問共享資源前對互斥量進行加鎖,在訪問完成后釋放互斥量上的鎖。如下例所示,就是互斥量對共享數(shù)據(jù)的操作:

}

2、信號

該信號量是Posix提供的基于內(nèi)存的信號量,它們由應(yīng)用程序分配信號量的內(nèi)存空間。如下例所示,就是信號量對共享數(shù)據(jù)的操作:

#include

#include

#include

int value = 5;

sem_t sem1,sem2;

void mainshow();

void *mythread();

int main()

{

int retval;

pthread_t tid;

retval = sem_init(&sem1,0,0);

retval = sem_init(&sem2,0,1);

retval =pthread_create(&tid,NULL,mythread,NULL);

mainshow();

pthread_join(tid,NULL);

printf(“value3 = %d\n”,value);

return 0;

}

void *mythread()

{

int retval;

retval = sem_wait(&sem1);

value = value + 1;

printf(“value1 = %d\n”,value);

retval = sem_post(&sem2);

pthread_exit((void *) 0);

}

void mainshow()

{

int retval;

retval = sem_wait(&sem2);

value = value + 1;

printf(“value2 = %d\n”,value);

retval = sem_post(&sem1);

}

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7324

    瀏覽量

    94289
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    508

    瀏覽量

    20796
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Rust的多線程編程概念和使用方法

    和字段、常見用法以及多線程的一些實踐經(jīng)驗。由淺入深帶你零基礎(chǔ)玩轉(zhuǎn)Rust的多線程編程。 線程的基本概念和使用方法 Thread是Rust中并發(fā)編程的一
    的頭像 發(fā)表于 09-20 11:15 ?1885次閱讀

    Python多線程編程原理

    多線程使用方法Python中使用線程兩種方式,分別是函數(shù)或者用類來包裝線程對象。用函數(shù)來包裝
    發(fā)表于 11-22 14:01

    python創(chuàng)建多線程兩種方法

    MING3. 線程對象的方法上面介紹了當(dāng)前 Python 中創(chuàng)建線程兩種主要方法。創(chuàng)建線程是件
    發(fā)表于 03-15 16:47

    如何使用多線程和異步操作等并發(fā)設(shè)計方法來最大化程序的性能

    (超線程、雙核)的普及,多線程和異步操作等并發(fā)程序設(shè)計方法也受到了更多的關(guān)注和討論。本文主要是想探討一下如何使用并發(fā)來最大化程序的性能。  多線程
    發(fā)表于 08-23 16:31

    QNX環(huán)境下多線程編程

    介紹了QNX 實時操作系統(tǒng)和多線程編程技術(shù),包括線程同步方法、多線程程序的
    發(fā)表于 08-12 17:37 ?30次下載

    Linux多線程同步方法

    線程對共享相同內(nèi)存操作時,就會出現(xiàn)多個線程對同一資源的使用,為此,需要對這些線程進行同步,以確保它們在訪問共享內(nèi)存的時候不會訪問到無效
    發(fā)表于 08-08 14:17 ?2207次閱讀

    設(shè)計多線程和多核系統(tǒng)

    如果您的微控制器應(yīng)用程序需要處理數(shù)字音頻,請考慮采用多線程方法。使用多線程設(shè)計方法可以使設(shè)計者以簡單的方式重用其部分設(shè)計。
    發(fā)表于 08-14 15:42 ?9次下載
    設(shè)計<b class='flag-5'>多線程</b>和多核系統(tǒng)

    java多線程同步方法

    二、為什么要線程同步 因為當(dāng)我們有多個線程要同時訪問一個變量或?qū)ο髸r,如果這些線程中既有讀又有寫操作時,就會導(dǎo)致變量值或?qū)ο蟮臓顟B(tài)出現(xiàn)混亂,
    發(fā)表于 09-27 13:19 ?0次下載

    多線程好還是單線程好?單線程多線程的區(qū)別 優(yōu)缺點分析

    摘要:如今單線程多線程已經(jīng)得到普遍運用,那么到底多線程好還是單線程好呢?單線程多線程的區(qū)別又
    發(fā)表于 12-08 09:33 ?8.3w次閱讀

    Linux中的常用多線程同步方式淺析

    嵌入式linux中文站給大家介紹三Linux中的常用多線程同步方式:互斥量,條件變量,信號量。
    發(fā)表于 05-02 14:49 ?3506次閱讀
    三<b class='flag-5'>種</b>Linux中的常用<b class='flag-5'>多線程</b><b class='flag-5'>同步</b><b class='flag-5'>方式</b>淺析

    python創(chuàng)建多線程兩種方法

    1. 用函數(shù)創(chuàng)建多線程 在Python3中,Python提供了一個內(nèi)置模塊 threading.Thread ,可以很方便地讓我們創(chuàng)建多線程。 threading.Thread() 一般接收個參數(shù)
    的頭像 發(fā)表于 03-15 16:47 ?5861次閱讀

    多線程同步的幾種方法

    多線程同步是指在多個線程并發(fā)執(zhí)行的情況下,為了保證線程執(zhí)行的正確性和一致性,需要采用特定的方法來協(xié)調(diào)線程
    的頭像 發(fā)表于 11-17 14:16 ?2133次閱讀

    多線程如何保證數(shù)據(jù)的同步

    多線程編程是一并發(fā)編程的方法,意味著程序中同時運行多個線程,每個線程可獨立執(zhí)行不同的任務(wù),共享同一份數(shù)據(jù)。由于
    的頭像 發(fā)表于 11-17 14:22 ?2285次閱讀

    java實現(xiàn)多線程的幾種方式

    Java實現(xiàn)多線程的幾種方式 多線程是指程序中包含了個或以上的線程,每個線程都可以并行執(zhí)行不同
    的頭像 發(fā)表于 03-14 16:55 ?1915次閱讀

    Python中多線程和多進程的區(qū)別

    Python作為一高級編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python中
    的頭像 發(fā)表于 10-23 11:48 ?1475次閱讀
    Python中<b class='flag-5'>多線程</b>和多進程的區(qū)別