{"id":126,"date":"2023-12-29T16:05:00","date_gmt":"2023-12-29T15:05:00","guid":{"rendered":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=126"},"modified":"2024-01-08T09:12:12","modified_gmt":"2024-01-08T08:12:12","slug":"die-timer-klasse-in-java-zeitgesteuerte-aufgabenplanung","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=126","title":{"rendered":"Die Timer-Klasse in Java: Zeitgesteuerte Aufgabenplanung"},"content":{"rendered":"\n<p>Die Timer-Klasse in Java ist ein leistungsstarkes Werkzeug zur Planung und Ausf\u00fchrung von Aufgaben zu einem bestimmten Zeitpunkt oder in regelm\u00e4\u00dfigen Abst\u00e4nden. Mit ihrer Hilfe k\u00f6nnen Sie Aufgaben zeitgesteuert ausf\u00fchren und dabei sowohl einmalige als auch wiederholte Aufgaben planen. In diesem Artikel werden wir uns eingehend mit der Timer-Klasse besch\u00e4ftigen, ihre Verwendung erkl\u00e4ren und Codebeispiele f\u00fcr verschiedene Szenarien bereitstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Einleitung zur Timer-Klasse<\/h2>\n\n\n\n<p>Die Timer-Klasse geh\u00f6rt zum Java-Paket <code>java.util<\/code> und erm\u00f6glicht die einfache Planung von Aufgaben in einer Java-Anwendung. Sie basiert auf dem Konzept von Timer-Objekten, die in der Lage sind, Aufgaben zu einem festgelegten Zeitpunkt oder in regelm\u00e4\u00dfigen Abst\u00e4nden auszuf\u00fchren. Die Timer-Klasse ist n\u00fctzlich f\u00fcr Anwendungen, die periodische Aufgaben oder Aufgaben zu einem bestimmten Zeitpunkt ausf\u00fchren m\u00fcssen, wie beispielsweise das Planen von Datenbank-Backups, das Aktualisieren von Anwendungsdaten oder das Ausl\u00f6sen von Benachrichtigungen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die Grundlagen der Timer-Klasse<\/h2>\n\n\n\n<p>Bevor wir uns in die Details vertiefen, schauen wir uns die grundlegenden Schritte zur Verwendung der Timer-Klasse an.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Importieren Sie die Timer-Klasse:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">import<\/span> <span class=\"hljs-selector-tag\">java<\/span><span class=\"hljs-selector-class\">.util<\/span><span class=\"hljs-selector-class\">.Timer<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Erstellen Sie eine Instanz der Timer-Klasse:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Timer timer = <span class=\"hljs-keyword\">new<\/span> Timer();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Planen Sie Aufgaben zur Ausf\u00fchrung mit dem Timer:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">timer<\/span><span class=\"hljs-selector-class\">.schedule<\/span>(<span class=\"hljs-selector-tag\">task<\/span>, <span class=\"hljs-selector-tag\">delay<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Hierbei steht <code>task<\/code> f\u00fcr die auszuf\u00fchrende Aufgabe und <code>delay<\/code> f\u00fcr die Verz\u00f6gerung (in Millisekunden), bevor die Aufgabe gestartet wird.<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>Optional k\u00f6nnen Sie Aufgaben in regelm\u00e4\u00dfigen Abst\u00e4nden ausf\u00fchren lassen:<\/li>\n<\/ol>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">timer<\/span><span class=\"hljs-selector-class\">.scheduleAtFixedRate<\/span>(<span class=\"hljs-selector-tag\">task<\/span>, <span class=\"hljs-selector-tag\">initialDelay<\/span>, <span class=\"hljs-selector-tag\">period<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Fall steht <code>initialDelay<\/code> f\u00fcr die Verz\u00f6gerung vor dem ersten Start und <code>period<\/code> f\u00fcr den Zeitabstand zwischen den aufeinanderfolgenden Ausf\u00fchrungen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ausf\u00fchrung einmaliger Aufgaben<\/h2>\n\n\n\n<p>Um einmalige Aufgaben mit der Timer-Klasse auszuf\u00fchren, verwenden Sie die Methode <code>schedule()<\/code>. Hier ist ein einfaches Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.util.Timer;\n<span class=\"hljs-keyword\">import<\/span> java.util.TimerTask;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">OnceTaskExample<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        Timer timer = <span class=\"hljs-keyword\">new<\/span> Timer();\n\n        TimerTask task = <span class=\"hljs-keyword\">new<\/span> TimerTask() {\n            @Override\n            public <span class=\"hljs-keyword\">void<\/span> run() {\n                System.out.println(<span class=\"hljs-string\">\"Einmalige Aufgabe wurde ausgef\u00fchrt!\"<\/span>);\n            }\n        };\n\n        <span class=\"hljs-comment\">\/\/ Die Aufgabe wird nach 2000 Millisekunden (2 Sekunden) ausgef\u00fchrt.<\/span>\n        timer.schedule(task, <span class=\"hljs-number\">2000<\/span>);\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird eine Timer-Instanz erstellt, eine TimerTask-Implementierung f\u00fcr die auszuf\u00fchrende Aufgabe definiert und diese Aufgabe nach einer Verz\u00f6gerung von 2 Sekunden geplant. Die <code>run()<\/code>-Methode der TimerTask wird dann automatisch nach Ablauf der Verz\u00f6gerung aufgerufen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ausf\u00fchrung wiederholter Aufgaben<\/h2>\n\n\n\n<p>Die Timer-Klasse erm\u00f6glicht auch die Planung wiederholter Aufgaben. Es gibt zwei M\u00f6glichkeiten, dies zu tun: mit einer festen Zeitverz\u00f6gerung oder mit einer festen Frequenz. Schauen wir uns beide Optionen genauer an.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wiederholung mit fester Zeitverz\u00f6gerung<\/h3>\n\n\n\n<p>Bei der Wiederholung mit fester Zeitverz\u00f6gerung wird die Aufgabe in regelm\u00e4\u00dfigen Abst\u00e4nden nach einem festgelegten Zeitraum ausgef\u00fchrt. Hier ist ein Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.util.Timer;\n<span class=\"hljs-keyword\">import<\/span> java.util.TimerTask;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">FixedDelayTaskExample<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        Timer timer = <span class=\"hljs-keyword\">new<\/span> Timer();\n\n        TimerTask task = <span class=\"hljs-keyword\">new<\/span> TimerTask() {\n            @Override\n            public <span class=\"hljs-keyword\">void<\/span> run() {\n                System.out.println(<span class=\"hljs-string\">\"Wiederholte Aufgabe mit fester Zeitverz\u00f6gerung wurde ausgef\u00fchrt!\"<\/span>);\n            }\n        };\n\n        <span class=\"hljs-comment\">\/\/ Die Aufgabe wird nach 2000 Millisekunden (2 Sekunden) gestartet und dann alle 3000 Millisekunden (3 Sekunden) wiederholt.<\/span>\n        timer.schedule(task, <span class=\"hljs-number\">2000<\/span>, <span class=\"hljs-number\">3000<\/span>);\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die Aufgabe zun\u00e4chst nach einer Verz\u00f6gerung von 2 Sekunden gestartet und dann alle 3 Sekunden wiederholt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wiederholung mit fester Frequenz<\/h3>\n\n\n\n<p>Bei der Wiederholung mit fester Frequenz wird die Aufgabe in regelm\u00e4\u00dfigen Abst\u00e4nden nach einem festgelegten Zeitraum ausgef\u00fchrt, unabh\u00e4ngig von der Dauer der vorherigen Ausf\u00fchrung. Hier ist ein Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.util.Timer;\n<span class=\"hljs-keyword\">import<\/span> java.util.TimerTask;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">FixedRateTaskExample<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        Timer timer = <span class=\"hljs-keyword\">new<\/span> Timer();\n\n        TimerTask task = <span class=\"hljs-keyword\">new<\/span> TimerTask() {\n            @Override\n            public <span class=\"hljs-keyword\">void<\/span> run() {\n                System.out.println(<span class=\"hljs-string\">\"Wiederholte Aufgabe mit fester Frequenz wurde ausgef\u00fchrt!\"<\/span>);\n            }\n        };\n\n        <span class=\"hljs-comment\">\/\/ Die Aufgabe wird nach 2000 Millisekunden (2 Sekunden) gestartet und dann alle 3000 Millisekunden (3 Sekunden) wiederholt.<\/span>\n        timer.scheduleAtFixedRate(task, <span class=\"hljs-number\">2000<\/span>, <span class=\"hljs-number\">3000<\/span>);\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die Aufgabe zun\u00e4chst nach einer Verz\u00f6gerung von 2 Sekunden gestartet und dann alle 3 Sekunden wiederholt, unabh\u00e4ngig davon, wie lange die vorherige Ausf\u00fchrung dauert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Abbrechen von geplanten Aufgaben<\/h2>\n\n\n\n<p>Es ist wichtig zu wissen, wie geplante Aufgaben abgebrochen werden k\u00f6nnen, falls dies erforderlich ist. Die Timer-Klasse stellt eine Methode namens <code>cancel()<\/code> bereit, die verwendet werden kann, um den Timer und alle damit verbundenen Aufgaben zu stoppen. Hier ist ein Beispiel:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.util.Timer;\n<span class=\"hljs-keyword\">import<\/span> java.util.TimerTask;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">CancelTaskExample<\/span> <\/span>{\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        Timer timer = <span class=\"hljs-keyword\">new<\/span> Timer();\n\n        TimerTask task = <span class=\"hljs-keyword\">new<\/span> TimerTask() {\n            @Override\n            public <span class=\"hljs-keyword\">void<\/span> run() {\n                System.out.println(<span class=\"hljs-string\">\"Diese Aufgabe sollte nicht ausgef\u00fchrt werden.\"<\/span>);\n            }\n        };\n\n        <span class=\"hljs-comment\">\/\/ Die Aufgabe wird nach 2000 Millisekunden (2 Sekunden) gestartet und dann abgebrochen.<\/span>\n        timer.schedule(task, <span class=\"hljs-number\">2000<\/span>);\n\n        <span class=\"hljs-comment\">\/\/ Aufgabe abbrechen<\/span>\n        task.cancel();\n    }\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In diesem Beispiel wird die geplante Aufgabe nach einer Verz\u00f6gerung von 2 Sekunden abgebrochen, bevor sie ausgef\u00fchrt wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Die Timer-Klasse in Java bietet eine leistungsstarke M\u00f6glichkeit zur zeitgesteuerten Planung und Ausf\u00fchrung von Aufgaben in Ihren Anwendungen. Sie k\u00f6nnen sowohl einmalige als auch wiederholte Aufgaben planen und zwischen fester Zeitverz\u00f6gerung und fester Frequenz w\u00e4hlen. Dar\u00fcber hinaus erm\u00f6glicht die <code>cancel()<\/code>-Methode das Abbrechen von geplanten Aufgaben, wenn dies erforderlich ist. Mit diesem Wissen sind Sie in der Lage, die Timer-Klasse effektiv in Ihren Java-Anwendungen zu nutzen, um Zeitabh\u00e4ngigkeiten und periodische Aufgaben zu verwalten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Timer-Klasse in Java ist ein leistungsstarkes Werkzeug zur Planung und Ausf\u00fchrung von Aufgaben zu einem bestimmten Zeitpunkt oder in regelm\u00e4\u00dfigen Abst\u00e4nden. Mit ihrer Hilfe k\u00f6nnen Sie Aufgaben zeitgesteuert ausf\u00fchren und dabei sowohl einmalige als auch wiederholte Aufgaben planen. In diesem Artikel werden wir uns eingehend mit der Timer-Klasse besch\u00e4ftigen, ihre Verwendung erkl\u00e4ren und Codebeispiele [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-126","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=126"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":127,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions\/127"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}