{"id":32121,"date":"2023-01-26T21:42:36","date_gmt":"2023-01-26T16:12:36","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/"},"modified":"2023-01-26T21:42:36","modified_gmt":"2023-01-26T16:12:36","slug":"solved-why-thread-isnt-stopping-at-count-3","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/","title":{"rendered":"[Solved] why thread isnt stopping at count 3?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-39146590\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"39146590\" data-parentid=\"39146545\" data-score=\"-2\" 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 the test <code>if (count == 3)<\/code> is done the value of <code>count<\/code> is <code>6<\/code>.<\/p>\n<p>And your code test it only once.<\/p>\n<p>You need to move the code that is out of the for loop inside it. <\/p>\n<p>You need also to hold a lock on <code>t<\/code> before call <code>wait<\/code>. This is done with a synchronized block.<\/p>\n<pre><code>@Override\npublic void run() {\n    int count = 0;\n    for (int i = 0; i &lt;= 5; i++) {\n        count++;\n        System.out.println(\"counting\" + count);\n\n        \/\/ Moved block\n        if (count == 3) {\n            try {\n                Thread t = new Thread();\n                synchronized (t) {  \n                    t.wait(5000);\n                }\n                System.out.println(\"thread waiting\");\n            } catch (InterruptedException ex) {\n                Logger.getLogger(ThreadDemo.class.getName()).log(Level.SEVERE, null, ex);\n            }\n        }\n        \/\/ End of moved block\n    }\n}\n<\/code><\/pre>\n<p>The output will be<\/p>\n<pre><code>counting1\ncounting2\ncounting3\nthread waiting     \/\/ Note: this will be printed after 5 seconds\ncounting4\ncounting5\ncounting6\n<\/code><\/pre>\n<p>A similar result, but not identical can be obtained using Thread.sleep, replacing this code<\/p>\n<pre><code>Thread t = new Thread();\nsynchronized (t) {  \n   t.wait(5000);\n}\n<\/code><\/pre>\n<p>With the following:<\/p>\n<pre><code>Thread.sleep(5000);\n<\/code><\/pre>\n<p>A difference between Thread.sleep and Object.wait is that is possible to awake a thread waiting acquiring his lock and calling <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/Object.html#notify()\">notify<\/a> (or <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/Object.html#notifyAll()\">notifyAll<\/a>). <\/p>\n<p>Instead is not possible to awake a thread sleeping with Thread.sleep.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">9<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved why thread isnt stopping at count 3? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] When the test if (count == 3) is done the value of count is 6. And your code test it only once. You need to move the code that is out of the for loop inside it. You need also to hold a lock on t before call wait. This is done with a &#8230; <a title=\"[Solved] why thread isnt stopping at count 3?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\" aria-label=\"More on [Solved] why thread isnt stopping at count 3?\">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,1368],"class_list":["post-32121","post","type-post","status-publish","format-standard","hentry","category-solved","tag-java","tag-multithreading","tag-thread-safety"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] why thread isnt stopping at count 3? - 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-why-thread-isnt-stopping-at-count-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] why thread isnt stopping at count 3? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] When the test if (count == 3) is done the value of count is 6. And your code test it only once. You need to move the code that is out of the for loop inside it. You need also to hold a lock on t before call wait. This is done with a ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-26T16:12:36+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-why-thread-isnt-stopping-at-count-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] why thread isnt stopping at count 3?\",\"datePublished\":\"2023-01-26T16:12:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\"},\"wordCount\":123,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"java\",\"multithreading\",\"thread-safety\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\",\"name\":\"[Solved] why thread isnt stopping at count 3? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2023-01-26T16:12:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] why thread isnt stopping at count 3?\"}]},{\"@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] why thread isnt stopping at count 3? - 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-why-thread-isnt-stopping-at-count-3\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] why thread isnt stopping at count 3? - JassWeb","og_description":"[ad_1] When the test if (count == 3) is done the value of count is 6. And your code test it only once. You need to move the code that is out of the for loop inside it. You need also to hold a lock on t before call wait. This is done with a ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/","og_site_name":"JassWeb","article_published_time":"2023-01-26T16:12:36+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-why-thread-isnt-stopping-at-count-3\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] why thread isnt stopping at count 3?","datePublished":"2023-01-26T16:12:36+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/"},"wordCount":123,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["java","multithreading","thread-safety"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/","url":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/","name":"[Solved] why thread isnt stopping at count 3? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-01-26T16:12:36+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-thread-isnt-stopping-at-count-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] why thread isnt stopping at count 3?"}]},{"@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\/32121","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=32121"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/32121\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=32121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=32121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=32121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}