{"id":12616,"date":"2019-01-20T06:12:29","date_gmt":"2019-01-20T05:12:29","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=12616"},"modified":"2019-07-15T20:37:23","modified_gmt":"2019-07-15T18:37:23","slug":"java-thread-6-state-oder-wie-starten-wir-ein-einfaches-java-programm-auf-dem-raspberry-pi","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=12616","title":{"rendered":"Java Thread &#8211; 6 State oder wie starten wir ein einfaches Java Programm auf dem Raspberry Pi"},"content":{"rendered":"<p>Es gibt 6 State im Enum:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/States-Java-Thread-e1547921798990.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/States-Java-Thread-e1547921798990.png\" alt=\"\" width=\"626\" height=\"424\" class=\"aligncenter size-full wp-image-12618\" \/><\/a><\/p>\n<p>Es gibt mind. diese Status:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/States-Java-Thread-status-e1547921814924.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/States-Java-Thread-status-e1547921814924.png\" alt=\"\" width=\"492\" height=\"367\" class=\"aligncenter size-full wp-image-12617\" \/><\/a><\/p>\n<p>Hier mal ein Beispiel, f\u00fcr einige Status. Die Thread-Klasse die nur 5 Sekunden warte:<!--more--><\/p>\n<pre class=\"lang:java decode:true \" >\r\n\r\npackage de.wenzlaff.twthread;\r\n\r\n\/**\r\n * Testthread.\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic class TestThread implements Runnable {\r\n\r\n\tpublic void run() {\r\n\t\tSystem.out.println(\r\n\t\t\t\t\"-------&gt; Start Test mit 5 Sekunden sleep. TestThread Status: \" + Thread.currentThread().getState());\r\n\r\n\t\ttry {\r\n\t\t\tThread.sleep(5000);\r\n\t\t} catch (InterruptedException e) {\r\n\t\t\tSystem.out.println(\"-------&gt; TestThread InterruptedException: \" + Thread.currentThread().getState());\r\n\t\t}\r\n\t\tSystem.out.println(\"-------&gt; Ende Test TestThread Status: \" + Thread.currentThread().getState());\r\n\t}\r\n\r\n}<\/pre>\n<p>Und die Hauptklasse:<\/p>\n<pre class=\"lang:java decode:true \" >\r\npackage de.wenzlaff.twthread;\r\n\r\n\/**\r\n * Testprogramm f\u00fcr einige Status von Threads.\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic class Start {\r\n\r\n\tpublic static void main(String[] args) throws Exception {\r\n\r\n\t\tSystem.out.println(\"Programm Start Thread Status: \" + Thread.currentThread().getState());\r\n\r\n\t\tRunnable runnable = new TestThread();\r\n\t\tThread testThread = new Thread(runnable);\r\n\r\n\t\tSystem.out.println(\"Status vom TestThread: \" + testThread.getState());\r\n\r\n\t\ttestThread.start();\r\n\r\n\t\tSystem.out.println(\"Status vom TestThread nach Start: \" + testThread.getState());\r\n\t\tSystem.out.println(\"Status Haupt Thread: \" + Thread.currentThread().getState());\r\n\r\n\t\tThread.sleep(1000);\r\n\r\n\t\tSystem.out.println(\"Status vom TestThread nach 1 Sekunde sleep: \" + testThread.getState());\r\n\r\n\t\tThread.sleep(5000);\r\n\r\n\t\tSystem.out.println(\"Status vom TestThread nach 5 Sekunde sleep: \" + testThread.getState());\r\n\t\tSystem.out.println(\"Programm Ende Haupt Thread Status: \" + Thread.currentThread().getState());\r\n\r\n\t\t\/\/ TODO: State: WAITING und BLOCKED\r\n\t}\r\n}\r\n<\/pre>\n<p>Liefert das Ergebnis:<\/p>\n<pre class=\"lang:default decode:true \" >\r\nProgramm Start Thread Status: RUNNABLE\r\nStatus vom TestThread: NEW\r\nStatus vom TestThread nach Start: RUNNABLE\r\nStatus Haupt Thread: RUNNABLE\r\n-------&gt; Start Test mit 5 Sekunden sleep. TestThread Status: RUNNABLE\r\nStatus vom TestThread nach 1 Sekunde sleep: TIMED_WAITING\r\n-------&gt; Ende Test TestThread Status: RUNNABLE\r\nStatus vom TestThread nach 5 Sekunde sleep: TERMINATED\r\nProgramm Ende Haupt Thread Status: RUNNABLE<\/pre>\n<p>Nun zu der Frage wie wir das Programm auf einem Raspberry Pi starten. Wenn wir das Programm compiliert haben, kopieren wird die beiden CLASS Dateien mit der Verzeichnis Struktur auf den Pi:<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.43.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.43.png\" alt=\"\" width=\"246\" height=\"99\" class=\"aligncenter size-full wp-image-12621\" \/><\/a><\/p>\n<p>Wer das nicht selbst compilieren will, kann das Verzeichnis auch hier <a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/de.zip\">laden<\/a> und auspacken.<\/p>\n<p>Nun starten wir Java im obersten Verzeichnis mit folgenen Befehl: <strong>java de.wenzlaff.twthread.Start<\/strong><\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.58.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.58.png\" alt=\"\" width=\"859\" height=\"285\" class=\"aligncenter size-full wp-image-12622\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.58.png 859w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.58-300x100.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/01\/Bildschirmfoto-2019-01-19-um-19.28.58-768x255.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es gibt 6 State im Enum: Es gibt mind. diese Status: Hier mal ein Beispiel, f\u00fcr einige Status. Die Thread-Klasse die nur 5 Sekunden warte:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,5,217,79,3515],"tags":[3525,2178,186],"class_list":["post-12616","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-java","category-mind-map","category-programmierung","category-tip","tag-6-status","tag-java","tag-thread"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/12616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12616"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/12616\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12616"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}