{"id":27342,"date":"2024-03-16T08:18:10","date_gmt":"2024-03-16T08:18:10","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/"},"modified":"2024-03-22T10:48:15","modified_gmt":"2024-03-22T10:48:15","slug":"how-to-use-linkedblockingqueue-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/","title":{"rendered":"How to use LinkedBlockingQueue in Java?"},"content":{"rendered":"<p>LinkedBlockingQueue is a thread-safe blocking queue in Java, implemented based on a linked list, and used for passing data between producers and consumers.<\/p>\n<p>To use LinkedBlockingQueue, the first step is to create a LinkedBlockingQueue object.<\/p>\n<pre class=\"post-pre\"><code>LinkedBlockingQueue&lt;Integer&gt; queue = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">LinkedBlockingQueue<\/span>&lt;Integer&gt;();\r\n<\/code><\/pre>\n<p>Afterwards, you can add elements to the queue using the following method:<\/p>\n<pre class=\"post-pre\"><code>queue.add(element); <span class=\"hljs-comment\">\/\/\u6dfb\u52a0\u5143\u7d20\u5230\u961f\u5217\uff0c\u5982\u679c\u961f\u5217\u5df2\u6ee1\u5219\u629b\u51fa\u5f02\u5e38<\/span>\r\nqueue.offer(element); <span class=\"hljs-comment\">\/\/\u6dfb\u52a0\u5143\u7d20\u5230\u961f\u5217\uff0c\u5982\u679c\u961f\u5217\u5df2\u6ee1\u5219\u8fd4\u56defalse<\/span>\r\nqueue.put(element); <span class=\"hljs-comment\">\/\/\u6dfb\u52a0\u5143\u7d20\u5230\u961f\u5217\uff0c\u5982\u679c\u961f\u5217\u5df2\u6ee1\u5219\u963b\u585e\u76f4\u5230\u961f\u5217\u6709\u7a7a\u95f2\u4f4d\u7f6e<\/span>\r\n<\/code><\/pre>\n<p>You can obtain and remove elements from the queue using the following method:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">Integer<\/span> <span class=\"hljs-variable\">element<\/span> <span class=\"hljs-operator\">=<\/span> queue.remove(); <span class=\"hljs-comment\">\/\/\u83b7\u53d6\u5e76\u79fb\u9664\u961f\u5217\u5934\u90e8\u7684\u5143\u7d20\uff0c\u5982\u679c\u961f\u5217\u4e3a\u7a7a\u5219\u629b\u51fa\u5f02\u5e38<\/span>\r\n<span class=\"hljs-type\">Integer<\/span> <span class=\"hljs-variable\">element<\/span> <span class=\"hljs-operator\">=<\/span> queue.poll(); <span class=\"hljs-comment\">\/\/\u83b7\u53d6\u5e76\u79fb\u9664\u961f\u5217\u5934\u90e8\u7684\u5143\u7d20\uff0c\u5982\u679c\u961f\u5217\u4e3a\u7a7a\u5219\u8fd4\u56denull<\/span>\r\n<span class=\"hljs-type\">Integer<\/span> <span class=\"hljs-variable\">element<\/span> <span class=\"hljs-operator\">=<\/span> queue.take(); <span class=\"hljs-comment\">\/\/\u83b7\u53d6\u5e76\u79fb\u9664\u961f\u5217\u5934\u90e8\u7684\u5143\u7d20\uff0c\u5982\u679c\u961f\u5217\u4e3a\u7a7a\u5219\u963b\u585e\u76f4\u5230\u961f\u5217\u6709\u5143\u7d20<\/span>\r\n<\/code><\/pre>\n<p>You can also retrieve but not remove the elements at the head of the queue using the following method.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">Integer<\/span> <span class=\"hljs-variable\">element<\/span> <span class=\"hljs-operator\">=<\/span> queue.element(); <span class=\"hljs-comment\">\/\/\u83b7\u53d6\u961f\u5217\u5934\u90e8\u7684\u5143\u7d20\uff0c\u5982\u679c\u961f\u5217\u4e3a\u7a7a\u5219\u629b\u51fa\u5f02\u5e38<\/span>\r\n<span class=\"hljs-type\">Integer<\/span> <span class=\"hljs-variable\">element<\/span> <span class=\"hljs-operator\">=<\/span> queue.peek(); <span class=\"hljs-comment\">\/\/\u83b7\u53d6\u961f\u5217\u5934\u90e8\u7684\u5143\u7d20\uff0c\u5982\u679c\u961f\u5217\u4e3a\u7a7a\u5219\u8fd4\u56denull<\/span>\r\n<\/code><\/pre>\n<p>It is worth noting that the capacity of LinkedBlockingQueue can be dynamically adjusted, with a default capacity of Integer.MAX_VALUE.<\/p>\n<p>In addition to the methods mentioned above, LinkedBlockingQueue also offers some other methods such as getting the queue size and checking if the queue is empty, which can be chosen according to specific needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LinkedBlockingQueue is a thread-safe blocking queue in Java, implemented based on a linked list, and used for passing data between producers and consumers. To use LinkedBlockingQueue, the first step is to create a LinkedBlockingQueue object. LinkedBlockingQueue&lt;Integer&gt; queue = new LinkedBlockingQueue&lt;Integer&gt;(); Afterwards, you can add elements to the queue using the following method: queue.add(element); \/\/\u6dfb\u52a0\u5143\u7d20\u5230\u961f\u5217\uff0c\u5982\u679c\u961f\u5217\u5df2\u6ee1\u5219\u629b\u51fa\u5f02\u5e38 queue.offer(element); [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-27342","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to use LinkedBlockingQueue in Java? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to use LinkedBlockingQueue in Java?\" \/>\n<meta property=\"og:description\" content=\"LinkedBlockingQueue is a thread-safe blocking queue in Java, implemented based on a linked list, and used for passing data between producers and consumers. To use LinkedBlockingQueue, the first step is to create a LinkedBlockingQueue object. LinkedBlockingQueue&lt;Integer&gt; queue = new LinkedBlockingQueue&lt;Integer&gt;(); Afterwards, you can add elements to the queue using the following method: queue.add(element); \/\/\u6dfb\u52a0\u5143\u7d20\u5230\u961f\u5217\uff0c\u5982\u679c\u961f\u5217\u5df2\u6ee1\u5219\u629b\u51fa\u5f02\u5e38 queue.offer(element); [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T08:18:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T10:48:15+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"How to use LinkedBlockingQueue in Java?\",\"datePublished\":\"2024-03-16T08:18:10+00:00\",\"dateModified\":\"2024-03-22T10:48:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\"},\"wordCount\":140,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\",\"name\":\"How to use LinkedBlockingQueue in Java? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T08:18:10+00:00\",\"dateModified\":\"2024-03-22T10:48:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use LinkedBlockingQueue in Java?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to use LinkedBlockingQueue in Java? - Blog - Silicon Cloud","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:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/","og_locale":"en_US","og_type":"article","og_title":"How to use LinkedBlockingQueue in Java?","og_description":"LinkedBlockingQueue is a thread-safe blocking queue in Java, implemented based on a linked list, and used for passing data between producers and consumers. To use LinkedBlockingQueue, the first step is to create a LinkedBlockingQueue object. LinkedBlockingQueue&lt;Integer&gt; queue = new LinkedBlockingQueue&lt;Integer&gt;(); Afterwards, you can add elements to the queue using the following method: queue.add(element); \/\/\u6dfb\u52a0\u5143\u7d20\u5230\u961f\u5217\uff0c\u5982\u679c\u961f\u5217\u5df2\u6ee1\u5219\u629b\u51fa\u5f02\u5e38 queue.offer(element); [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T08:18:10+00:00","article_modified_time":"2024-03-22T10:48:15+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"How to use LinkedBlockingQueue in Java?","datePublished":"2024-03-16T08:18:10+00:00","dateModified":"2024-03-22T10:48:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/"},"wordCount":140,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/","name":"How to use LinkedBlockingQueue in Java? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T08:18:10+00:00","dateModified":"2024-03-22T10:48:15+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-linkedblockingqueue-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to use LinkedBlockingQueue in Java?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=27342"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27342\/revisions"}],"predecessor-version":[{"id":61567,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/27342\/revisions\/61567"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=27342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=27342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=27342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}