Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C भाषा में POSIX सेमाफोर का उपयोग कैसे करें

सेमाफोर प्रक्रिया या थ्रेड सिंक्रोनाइज़ेशन की एक अवधारणा है। यहां हम देखेंगे कि वास्तविक कार्यक्रमों में सेमाफोर का उपयोग कैसे करें।

लिनक्स सिस्टम में, हम POSIX सेमाफोर लाइब्रेरी प्राप्त कर सकते हैं। इसका इस्तेमाल करने के लिए हमें semaphores.h लाइब्रेरी को शामिल करना होगा। हमें निम्नलिखित विकल्पों का उपयोग करके कोड को संकलित करना होगा।

gcc program_name.c –lpthread -lrt

हम लॉक या प्रतीक्षा करने के लिए sem_wait() का उपयोग कर सकते हैं। और sem_post() ताला जारी करने के लिए। सेमाफोर इंटर-प्रोसेस कम्युनिकेशन (आईपीसी) के लिए sem_init() या sem_open() को इनिशियलाइज़ करता है।

उदाहरण

#include <stdio.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
sem_t mutex;
void* thread(void* arg) { //function which act like thread
   sem_wait(&mutex); //wait state
   printf("\nEntered into the Critical Section..\n");
   sleep(3); //critical section
   printf("\nCompleted...\n"); //comming out from Critical section
   sem_post(&mutex);
}
main() {
   sem_init(&mutex, 0, 1);
   pthread_t th1,th2;
   pthread_create(&th1,NULL,thread,NULL);
   sleep(2);
   pthread_create(&th2,NULL,thread,NULL);
   //Join threads with the main thread
   pthread_join(th1,NULL);
   pthread_join(th2,NULL);
   sem_destroy(&mutex);
}

आउटपुट

soumyadeep@soumyadeep-VirtualBox:~/Cpp_progs$ gcc 1270.posix_semaphore.c -lpthread -lrt
1270.posix_semaphore.c:19:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main() {
^~~~
soumyadeep@soumyadeep-VirtualBox:~/Cpp_progs$ ./a.out

Entered into the Critical Section..

Completed...

Entered into the Critical Section..

Completed...
soumyadeep@soumyadeep-VirtualBox:~/Cpp_progs$

  1. टिंकर पायथन में थ्रेड का उपयोग कैसे करें?

    Tkinter के साथ, हम थ्रेडिंग का उपयोग करके एक बार में कई फ़ंक्शन कॉल कर सकते हैं . यह किसी एप्लिकेशन में कुछ कार्यों का अतुल्यकालिक निष्पादन प्रदान करता है। पायथन में एक थ्रेड का उपयोग करने के लिए, हम थ्रेडिंग . नामक एक मॉड्यूल आयात कर सकते हैं और इसके थ्रेड . को उपवर्गित करें कक्षा। हमारी नई कक्षा

  1. Google पत्रक में Google अनुवाद का उपयोग कैसे करें

    नई भाषा सीखते समय Google अनुवाद एक उपयोगी टूल है। Google अनुवाद ऐप के साथ, आपके पास विभिन्न विकल्प उपलब्ध हैं जैसे किसी भाषा की पहचान करना या किसी संकेत का अनुवाद करने के लिए अपने कैमरे का उपयोग करना (दूसरों के बीच)। अन्य Google सेवाओं जैसे शीट्स में Google अनुवाद का उपयोग करना भी संभव है। एक सेल मे

  1. रूबी थ्रेड्स का उपयोग कैसे करें:ट्यूटोरियल को समझने में आसान

    रूबी में धागा क्या है? थ्रेड आपके रूबी प्रोग्राम को एक ही समय में कई काम करते हैं। जैसी चीजें : एकाधिक फ़ाइलें पढ़ना एकाधिक वेब अनुरोध को संभालना एकाधिक API कनेक्शन बनाना थ्रेड्स का उपयोग करने के परिणामस्वरूप, आपके पास एक बहु-थ्रेडेड रूबी प्रोग्राम होगा, जो चीजों को तेजी से पूरा करने में सक्षम