c語言之多線編程,c++多線程編程實例

本文目錄一覽:

C語言多線程編程為什麼要用pthread

3個線程使用的都是同一個info 代碼 Info_t *info = (Info_t *)malloc(sizeof(Info_t));只創建了一個info pthread_create(threads[i],NULL,calMatrix,(void *)info); 三個線程使用的是同一個 我把你的代碼改了下

c語言編程問題題目,給定3條線的長度,求出用這3條線組成的三角形的面積

#include stdio.h

#include math.h

int main()

{

    int a,b,c;

    double area,p;

    while(scanf(“%d%d%d”,a,b,c)==3)

    {

        if(a+bcb+caa+cb)

        {

            p=(a+b+c)/2.0;

            area=sqrt(p*(p-a)*(p-b)*(p-c));

        }

        else

        {

            area=-1;

        }

        printf(“%.0f\n”,area);

    }

    return 0;

}

在C語言的多線程編程中一般volatile應該用在什麼地方?

一般用在多線程程序中,由於某個變量可能被多個線程修改,因此,修飾為volatile,使其每次讀取,都是從存儲volatile變量的地址中去取,而不是取寄存器中的值。

volatile int a;

你的這種設想,都是最好要用volatile的地方,只要這個變量被反覆頻繁的修改,最好用volatile

C語言程序編程

10.

#includestdio.h

main()

{

int i,x,y,z;

printf(“所有的水仙花數為:\n”);

for(i=100;i1000;i++)

{

x=i/100;y=i/10%10;z=i%10;

if(i==x*x*x+y*y*y+z*z*z)

printf(“%5d”,i);

}

printf(“\n”);

}

c語言多進程編程

多進程這個詞用得比較少,聽過來有點不熟悉。你這個程序在linux下應該很容易實行,就是個進程間通信的問題,管道、消息隊列、共享內存都可以,可以找找相關資料。昨天失言不好意思。

三個源文件分別為1.c、2.c、3.c一個頭文件share.h。

share.h:

//共享的內存,兩個數組

typedef struct{

int a[2];

int b[2];

int id;

}share_use;

1.c:

#includeunistd.h

#includestdio.h

#includestdlib.h

#includestring.h

#includesys/types.h

#includesys/ipc.h

#includesys/shm.h

#include”share.h”

int main(){

void *shared_memory = (void *)0;

share_use *share_stuff;

int shmid;

shmid=shmget((key_t)1234,sizeof(share_use),0666|IPC_CREAT);//創建共享內存

if(shmid==-1){

fprintf(stderr,”共享內存創建失敗!\n”);

exit(1);

}

shared_memory = shmat(shmid, (void *)0,0);//讓進程可以訪問共享內存

if(shared_memory == (void *)-1){

fprintf(stderr,”啟用共享內存失敗!\n)”;

exit(1);

}

printf(“Memory attached at %X\n”,(int)shared_memory);

share_stuff = (share_use *)shared_memory;

share_stuff-id=0;

share_stuff-a[0]=1;

share_stuff-a[1]=2;

while(1){

if(share_stuff-id)

exit(0);

sleep(10);

}

}

2.c:

#includeunistd.h

#includestdio.h

#includestdlib.h

#includestring.h

#includesys/types.h

#includesys/ipc.h

#includesys/shm.h

#include”share.h”

int main(){

void *shared_memory = (void *)0;

share_use *share_stuff;

int shmid;

shmid=shmget((key_t)1234,sizeof(share_use),0666|IPC_CREAT);//創建共享內存

if(shmid==-1){

fprintf(stderr,”共享內存創建失敗!\n”);

exit(1);

}

shared_memory = shmat(shmid, (void *)0,0);//讓進程可以訪問共享內存

if(shared_memory == (void *)-1){

fprintf(stderr,”啟用共享內存失敗!\n”);

exit(1);

}

printf(“Memory attached at %X\n”,(int)shared_memory);

share_stuff = (share_use *)shared_memory;

share_stuff-b[0]=share_stuff-a[0]*100;

share_stuff-b[1]=share_stuff-a[1]*100;

while(1)

{

if(share_stuff-id)

exit(0);

sleep(10);

}

}

3.c:

#includeunistd.h

#includestdio.h

#includestdlib.h

#includestring.h

#includesys/types.h

#includesys/ipc.h

#includesys/shm.h

#include”share.h”

int main(){

void *shared_memory = (void *)0;

share_use *share_stuff;

int shmid;

shmid=shmget((key_t)1234,sizeof(share_use),0666|IPC_CREAT);//創建共享內存

if(shmid==-1){

fprintf(stderr,”共享內存創建失敗!\n”);

exit(1);

}

shared_memory = shmat(shmid, (void *)0,0);//讓進程可以訪問共享內存

if(shared_memory == (void *)-1){

fprintf(stderr,”啟用共享內存失敗!\n”);

exit(1);

}

printf(“Memory attached at %X\n”,(int)shared_memory);

share_stuff = (share_use *)shared_memory;

printf(“共享內存中有元素:%d , %d”,share_stuff-b[0],share_stuff-b[1]);

share_stuff-id=1;

return 0;

}

linux或unix環境下編譯

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/158322.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:40
下一篇 2024-11-19 00:40

相關推薦

  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28

發表回復

登錄後才能評論