{"id":19259,"date":"2024-07-13T17:17:30","date_gmt":"2024-07-13T17:17:30","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=19259"},"modified":"2024-07-13T17:17:30","modified_gmt":"2024-07-13T17:17:30","slug":"inter-process-communication-using-message-queues","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/","title":{"rendered":"Inter-Process Communication Using Message Queues"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png\" alt=\"\" \/><\/p>\n<p>Inter-process communication (IPC) is essential for enabling processes to exchange data and synchronize their actions. Among the various IPC mechanisms, message queues offer a robust and flexible solution. This article delves into the fundamentals of IPC using message queues, exploring their benefits, implementation, and practical applications.<\/p>\n<h2>What are Message Queues?<\/h2>\n<p>A message queue is an IPC mechanism that allows processes to communicate by sending and receiving messages. These messages are stored in a queue until they are retrieved by the receiving process. Message queues provide asynchronous communication, meaning the sender and receiver do not need to interact with the queue simultaneously. This decoupling of processes makes message queues a powerful tool for designing distributed and concurrent systems.<\/p>\n<h3>Key Characteristics of Message Queues<\/h3>\n<p>Key Characteristics of Message Queues are:<\/p>\n<ul>\n<li><strong>Asynchronous Communication:<\/strong> Processes can send and receive messages independently, enhancing flexibility and efficiency.<\/li>\n<li><strong>Order Preservation:<\/strong> Messages are typically stored and retrieved in a First-In-First-Out (FIFO) order, ensuring that the sequence of communication is maintained.<\/li>\n<li><strong>Persistence:<\/strong> Messages remain in the queue until they are explicitly retrieved, providing reliability even if the sender or receiver process terminates.<\/li>\n<li><strong>Scalability:<\/strong> Message queues can handle a large volume of messages, making them suitable for scalable systems.<\/li>\n<\/ul>\n<h3>Benefits of Using Message Queues<\/h3>\n<p>Benefits of Using Message Queues are:<\/p>\n<ul>\n<li><strong>Decoupling of Processes:<\/strong> Message queues allow processes to operate independently, improving modularity and maintainability.<\/li>\n<li><strong>Load Balancing:<\/strong> Multiple consumers can process messages from a single queue, distributing the workload effectively.<\/li>\n<li><strong>Fault Tolerance:<\/strong> Since messages persist in the queue until processed, the system can recover from failures without losing data.<\/li>\n<li><strong>Asynchronous Processing:<\/strong> Processes can continue execution without waiting for message acknowledgment, enhancing overall system performance.<\/li>\n<\/ul>\n<h3>Implementing Message Queues<\/h3>\n<p><strong>POSIX Message Queues<\/strong><br \/>\nPOSIX (Portable Operating System Interface) provides a standardized API for message queue implementation. Below is an example of creating and using POSIX message queues in C:<\/p>\n<pre><code>#include \n#include \n#include \n#include \n#include \n#include \n#include \n\n#define QUEUE_NAME  \"\/test_queue\"\n#define MAX_SIZE    1024\n#define MSG_STOP    \"exit\"\n\n\/\/ Sender Process\nvoid sender() {\n    mqd_t mq;\n    struct mq_attr attr;\n    char buffer[MAX_SIZE];\n\n    attr.mq_flags = 0;\n    attr.mq_maxmsg = 10;\n    attr.mq_msgsize = MAX_SIZE;\n    attr.mq_curmsgs = 0;\n\n    mq = mq_open(QUEUE_NAME, O_CREAT | O_WRONLY, 0644, &amp;attr);\n    if (mq == (mqd_t)-1) {\n        perror(\"mq_open\");\n        exit(1);\n    }\n\n    printf(\"Enter message (type 'exit' to stop): \");\n    while (fgets(buffer, MAX_SIZE, stdin)) {\n        buffer[strcspn(buffer, \"\\n\")] = 0; \/\/ Remove newline\n        if (mq_send(mq, buffer, MAX_SIZE, 0) == -1) {\n            perror(\"mq_send\");\n            exit(1);\n        }\n        if (strcmp(buffer, MSG_STOP) == 0)\n            break;\n        printf(\"Enter message (type 'exit' to stop): \");\n    }\n    mq_close(mq);\n}\n\n\/\/ Receiver Process\nvoid receiver() {\n    mqd_t mq;\n    char buffer[MAX_SIZE];\n    ssize_t bytes_read;\n\n    mq = mq_open(QUEUE_NAME, O_RDONLY);\n    if (mq == (mqd_t)-1) {\n        perror(\"mq_open\");\n        exit(1);\n    }\n\n    while (1) {\n        bytes_read = mq_receive(mq, buffer, MAX_SIZE, NULL);\n        if (bytes_read &gt;= 0) {\n            buffer[bytes_read] = '\\0';\n            if (!strcmp(buffer, MSG_STOP))\n                break;\n            printf(\"Received: %s\\n\", buffer);\n        } else {\n            perror(\"mq_receive\");\n            exit(1);\n        }\n    }\n    mq_close(mq);\n    mq_unlink(QUEUE_NAME);\n}\n\nint main(int argc, char **argv) {\n    if (argc != 2) {\n        fprintf(stderr, \"Usage: %s \\n\", argv[0]);\n        exit(1);\n    }\n\n    if (!strcmp(argv[1], \"sender\")) {\n        sender();\n    } else if (!strcmp(argv[1], \"receiver\")) {\n        receiver();\n    } else {\n        fprintf(stderr, \"Invalid option.\\n\");\n        exit(1);\n    }\n    return 0;\n}<\/code><\/pre>\n<h3>Practical Applications<\/h3>\n<ul>\n<li><strong>Distributed Systems:<\/strong> Message queues facilitate &#8211; communication between distributed components, enabling scalable and fault-tolerant architectures.<\/li>\n<li><strong>Real-Time Systems:<\/strong> They ensure timely delivery and processing of messages, crucial for real-time applications like telecommunications and control systems.<\/li>\n<li><strong>Microservices:<\/strong> Message queues decouple microservices, allowing them to communicate and synchronize without tight integration.<\/li>\n<li>Job Scheduling: Background jobs can be queued and processed asynchronously, optimizing resource utilization and performance.<\/li>\n<\/ul>\n<p><strong>Conclusion<\/strong><br \/>\nMessage queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability. By decoupling processes and preserving message order, they enhance system modularity and reliability. Implementing message queues using POSIX or other libraries enables developers to build robust applications capable of handling complex, distributed workloads. Whether in real-time systems, distributed architectures, or microservices, message queues are a fundamental tool for modern software development.<\/p>\n<h2>FAQs related to IPC using Message Queues<\/h2>\n<p>FAQs related to IPC using Message Queues are:<\/p>\n<p><strong>1. Can message queues handle large volumes of messages?<\/strong><br \/>\nYes, message queues are designed to handle large volumes of messages, making them suitable for scalable systems.<\/p>\n<p><strong>2. How are messages ordered in a message queue?<\/strong><br \/>\nMessages are typically stored and retrieved in a First-In-First-Out (FIFO) order, ensuring that the sequence of communication is maintained.<\/p>\n<p><strong>3. What happens to messages in the queue if the receiver process crashes?<\/strong><br \/>\nMessages remain in the queue until they are explicitly retrieved. This persistence ensures that messages are not lost and can be processed once the receiver process is available again.<\/p>\n<p><strong>4. How do you create and use a message queue in POSIX?<\/strong><br \/>\nIn POSIX, you can create and use a message queue using functions like mq_open, mq_send, and mq_receive.<\/p>\n<p><strong>5. How does a message queue differ from other IPC mechanisms like pipes or shared memory?<\/strong><br \/>\nMessage queues provide asynchronous communication, meaning the sender and receiver do not need to interact with the queue simultaneously. This is different from pipes, which are typically synchronous, and shared memory, which requires synchronization mechanisms to prevent concurrent access issues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inter-process communication (IPC) is essential for enabling processes to exchange data and synchronize their actions. Among the various IPC mechanisms, message queues offer a robust and flexible solution. This article delves into the fundamentals of IPC using message queues, exploring their benefits, implementation, and practical applications. What are Message Queues? A message queue is an [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-19259","post","type-post","status-publish","format-standard","hentry","category-operating-system"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Inter-Process Communication Using Message Queues<\/title>\n<meta name=\"description\" content=\"Message queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Inter-Process Communication Using Message Queues\" \/>\n<meta property=\"og:description\" content=\"Message queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-13T17:17:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Inter-Process Communication Using Message Queues\",\"datePublished\":\"2024-07-13T17:17:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\"},\"wordCount\":638,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png\",\"articleSection\":[\"Operating system\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\",\"name\":\"Inter-Process Communication Using Message Queues\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png\",\"datePublished\":\"2024-07-13T17:17:30+00:00\",\"description\":\"Message queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Operating system\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/operating-system\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Inter-Process Communication Using Message Queues\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Inter-Process Communication Using Message Queues","description":"Message queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/","og_locale":"en_US","og_type":"article","og_title":"Inter-Process Communication Using Message Queues","og_description":"Message queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability.","og_url":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2024-07-13T17:17:30+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Inter-Process Communication Using Message Queues","datePublished":"2024-07-13T17:17:30+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/"},"wordCount":638,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png","articleSection":["Operating system"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/","url":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/","name":"Inter-Process Communication Using Message Queues","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png","datePublished":"2024-07-13T17:17:30+00:00","description":"Message queues offer a versatile and efficient means of IPC, supporting asynchronous communication, fault tolerance, and scalability.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1720891033631-IPC%20using%20Message%20Queues.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/inter-process-communication-using-message-queues\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Operating system","item":"https:\/\/prepbytes.com\/blog\/category\/operating-system\/"},{"@type":"ListItem","position":3,"name":"Inter-Process Communication Using Message Queues"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/19259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=19259"}],"version-history":[{"count":1,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/19259\/revisions"}],"predecessor-version":[{"id":19260,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/19259\/revisions\/19260"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=19259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=19259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=19259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}