{"id":20729,"date":"2022-11-10T17:55:25","date_gmt":"2022-11-10T12:25:25","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/"},"modified":"2022-11-10T17:55:25","modified_gmt":"2022-11-10T12:25:25","slug":"solved-unable-to-understand-the-execution-flow-of-the-multithreading-code","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/","title":{"rendered":"[Solved] Unable to understand the execution flow of the multithreading code"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-30670064\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"30670064\" data-parentid=\"30669583\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>When it comes to &#8220;current date or time&#8221;, it means &#8220;randomness&#8221;. The reason of the different output of your code is not multi threads, but the <\/p>\n<pre><code>new java.util.Date() \n<\/code><\/pre>\n<p>Thread switching can cause randomness also, but it is very easy to avoid because of the existence of locks. Your code also has lock by using JAVA keyword &#8220;synchronized&#8221; on methods. When a method has a &#8220;synchronized&#8221;, that equals you are using<\/p>\n<pre><code>synchronized(this) {...}\n<\/code><\/pre>\n<p>Which means different threads can not run into the same Producer object&#8217;s {&#8230;} at the same time. The producer calls notify() after putting one ele to vector, which means producer says &#8220;The vector is not empty, please fetch something from it&#8221; to consumer. The consumer calls notify() after getting one ele from vector, which means consumer says &#8220;The vector is not full, please put your ele into it&#8221; to producer.<\/p>\n<p>To know these things clearly, please learning the basics of locks and conditions in JAVA.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Unable to understand the execution flow of the multithreading code <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] When it comes to &#8220;current date or time&#8221;, it means &#8220;randomness&#8221;. The reason of the different output of your code is not multi threads, but the new java.util.Date() Thread switching can cause randomness also, but it is very easy to avoid because of the existence of locks. Your code also has lock by using &#8230; <a title=\"[Solved] Unable to understand the execution flow of the multithreading code\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\" aria-label=\"More on [Solved] Unable to understand the execution flow of the multithreading code\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[323,884],"class_list":["post-20729","post","type-post","status-publish","format-standard","hentry","category-solved","tag-java","tag-multithreading"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Unable to understand the execution flow of the multithreading code - JassWeb<\/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:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Unable to understand the execution flow of the multithreading code - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] When it comes to &#8220;current date or time&#8221;, it means &#8220;randomness&#8221;. The reason of the different output of your code is not multi threads, but the new java.util.Date() Thread switching can cause randomness also, but it is very easy to avoid because of the existence of locks. Your code also has lock by using ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-10T12:25:25+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\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:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Unable to understand the execution flow of the multithreading code\",\"datePublished\":\"2022-11-10T12:25:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\"},\"wordCount\":177,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"java\",\"multithreading\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\",\"name\":\"[Solved] Unable to understand the execution flow of the multithreading code - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-11-10T12:25:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Unable to understand the execution flow of the multithreading code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Unable to understand the execution flow of the multithreading code - JassWeb","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:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Unable to understand the execution flow of the multithreading code - JassWeb","og_description":"[ad_1] When it comes to &#8220;current date or time&#8221;, it means &#8220;randomness&#8221;. The reason of the different output of your code is not multi threads, but the new java.util.Date() Thread switching can cause randomness also, but it is very easy to avoid because of the existence of locks. Your code also has lock by using ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/","og_site_name":"JassWeb","article_published_time":"2022-11-10T12:25:25+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Unable to understand the execution flow of the multithreading code","datePublished":"2022-11-10T12:25:25+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/"},"wordCount":177,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["java","multithreading"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/","url":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/","name":"[Solved] Unable to understand the execution flow of the multithreading code - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-11-10T12:25:25+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-unable-to-understand-the-execution-flow-of-the-multithreading-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Unable to understand the execution flow of the multithreading code"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/20729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=20729"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/20729\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=20729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=20729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=20729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}