{"id":1012,"date":"2022-05-06T19:21:40","date_gmt":"2022-05-06T17:21:40","guid":{"rendered":"https:\/\/freizone.net\/java-einfach-lernen\/?p=1012"},"modified":"2022-05-06T19:27:14","modified_gmt":"2022-05-06T17:27:14","slug":"multithreading","status":"publish","type":"post","link":"https:\/\/freizone.net\/java-einfach-lernen\/2022\/05\/06\/multithreading\/","title":{"rendered":"Multithreading"},"content":{"rendered":"<p>Beim Multithreading wird das Programm in einzelne Threads unterteilt. Jeder Thread steht f\u00fcr einen Programmstrang der eine bestimmte Aufgabe erf\u00fcllt und m\u00f6glichst gleichzeitig mit den anderen Programmstr\u00e4ngen ausgef\u00fchrt werden soll. Z.\u00a0B. k\u00f6nnte man in einem Weltraumspiel jedes Raumschiff in einen eigenen Thread packen.<\/p>\n<p>Multithreading erm\u00f6glicht es auch modernen Betriebssystemen, die einzel\u00adnen Programm\u00adstr\u00e4nge auf mehrere eventuell vorhandene Prozessorkerne aufzuteilen.<\/p>\n<p>Merke: Ein Programm ist ein Prozess. Ein Thread ist eine Untereinheit eines Programms bzw. Prozesses.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">public class Multithreading {\r\n\r\n public static void main(String[] args) \/* throws InterruptedException *\/ {\r\n \r\n  Thread thread1 = new Thread( new Klasse1() );\r\n  Thread thread2 = new Thread( new Klasse2() );\r\n  Thread thread3 = new Klasse3();\r\n\r\n  thread1.start();\r\n  thread2.start();\r\n  thread3.start();\r\n\/\/  Thread.sleep(3000);\r\n\/\/  thread3.interrupt();\r\n }\r\n}\r\n\r\nclass Klasse1 implements Runnable {\r\n @Override\r\n public void run() {\r\n  for (int i = 0; i &lt;= 100; i++) {\r\n   System.out.println(\"Thread 1: \" + i);\r\n  }\r\n }\r\n}\r\n\r\nclass Klasse2 implements Runnable {\r\n @Override\r\n public void run() {\r\n  for (int i = 0; i &lt;= 100; i++) {\r\n   System.out.println(\"Thread 2: \" + i);\r\n  }\r\n }\r\n}\r\n\r\nclass Klasse3 extends Thread {\r\n int i = 0;\r\n @Override\r\n public void run() {\r\n  for (int i = 0; i &lt;= 100; i++) {\r\n   System.out.println(\"Thread 3: \" + i);\r\n  }\r\n }\r\n}<\/pre>\n<p>Das Beispiel macht aus drei Klassen drei Prozesse. Wenn wir das Beispiel mehrmals starten, sieht man das nicht immer Prozess 1 zuerst gestartet wird. Das liegt daran ob der Prozessor in der Millisekunde in der der Befehl ausgef\u00fchrt wird gerade mit etwas anderem besch\u00e4ftigt ist oder nicht. Daher kann es sein das ein anderer Thread zuerst gestartet wird.<\/p>\n<p>&nbsp;<\/p>\n<p align=\"justify\">\n","protected":false},"excerpt":{"rendered":"<p>Beim Multithreading wird das Programm in einzelne Threads unterteilt. Jeder Thread steht f\u00fcr einen Programmstrang der eine bestimmte Aufgabe erf\u00fcllt und m\u00f6glichst gleichzeitig mit den anderen Programmstr\u00e4ngen ausgef\u00fchrt werden soll. Z.\u00a0B. k\u00f6nnte man in einem Weltraumspiel jedes Raumschiff in einen eigenen Thread packen. Multithreading erm\u00f6glicht es auch modernen Betriebssystemen, die einzel\u00adnen Programm\u00adstr\u00e4nge auf mehrere eventuell [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/1012"}],"collection":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/comments?post=1012"}],"version-history":[{"count":4,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/1012\/revisions"}],"predecessor-version":[{"id":1017,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/1012\/revisions\/1017"}],"wp:attachment":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/media?parent=1012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/categories?post=1012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/tags?post=1012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}