{"id":8569,"date":"2024-01-03T21:04:41","date_gmt":"2024-01-03T21:04:41","guid":{"rendered":"https:\/\/ciit-training.com\/?p=8569"},"modified":"2024-01-04T12:05:35","modified_gmt":"2024-01-04T12:05:35","slug":"virtuelle-threads-in-java-21","status":"publish","type":"post","link":"https:\/\/ciit-training.com\/en\/2024\/01\/03\/virtuelle-threads-in-java-21\/","title":{"rendered":"Virtual Threads in Java 21"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"8569\" class=\"elementor elementor-8569\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54c60f9 e-con-full e-flex e-con e-parent\" data-id=\"54c60f9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1fa0147 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"1fa0147\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h5><span style=\"font-weight: 400;\">Virtual Threads in Java: A Paradigm Shift in Concurrent Programming<\/span><\/h5><div><span style=\"font-weight: 400;\">\u00a0<\/span><\/div><h3><b>Introduction to Virtual Threads<\/b><\/h3><p><span style=\"font-weight: 400;\">With the introduction of virtual threads in Java (also known as <\/span><i><span style=\"font-weight: 400;\">Lightweight Threads<\/span><\/i><span style=\"font-weight: 400;\"> As is well known, we are witnessing a significant evolution in concurrent programming. Traditional threads, which map directly to OS threads, are resource-intensive and limit the scalability of modern applications. Virtual threads, introduced in Project Loom, aim to overcome these limitations.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Core concepts of Virtual Threads<\/b><\/h3><h5>Lightweight nature<\/h5><p><span style=\"font-weight: 400;\">Unlike traditional threads, which have a one-to-one mapping to operating system threads, virtual threads allow for a many-to-many mapping. This means that many virtual threads can be mapped to a smaller number of operating system threads. This reduces the overhead caused by context switching and resource management.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h5>Simpler concurrent programming<\/h5><p><span style=\"font-weight: 400;\">Virtual threads simplify concurrent programming by providing a model closer to sequential programming. Developers need to deal less with the complexities of thread management and can focus on business logic.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h5>Improved scalability<\/h5><p><span style=\"font-weight: 400;\">By utilizing resources more efficiently, applications using virtual threads can support a significantly higher number of concurrent operations. This is particularly beneficial for I\/O-intensive applications, where waiting for I\/O operations would inefficiently block traditional threads.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Technical Implementation<\/b><\/h3><h5>Creation of Virtual Threads<\/h5><p><span style=\"font-weight: 400;\">Virtual threads in Java can be easily created with the <\/span><span style=\"font-weight: 400;\">Thread.startVirtualThread<\/span><span style=\"font-weight: 400;\">-method created. This method takes a <\/span><span style=\"font-weight: 400;\">Runnable<\/span><span style=\"font-weight: 400;\"> contrary, similar to traditional threads.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h5>Scheduling and Management<\/h5><p><span style=\"font-weight: 400;\">The scheduling of virtual threads is handled by the Java Virtual Machine (JVM), which efficiently allocates them to available OS threads. This model allows for a very high number of concurrently running virtual threads.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Example 1: Creating a Virtual Thread<\/b><\/h3><p><span style=\"font-weight: 400;\">Creating a virtual thread in Java is remarkably simple. Here&#039;s a basic example:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-509ee5d e-flex e-con-boxed e-con e-parent\" data-id=\"509ee5d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec2871e exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"ec2871e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\timport java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class VirtualThreadDemo { public static void main(String[] args) { ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor(); executor.submit(() -&gt; { System.out.println(&quot;Running in a virtual thread&quot;); }); executor.shutdown(); } }\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3d97ac e-flex e-con-boxed e-con e-parent\" data-id=\"b3d97ac\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62927fe exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"62927fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">In this example, we create an executor service that uses a new virtual thread for each task. This approach is ideal for I\/O-intensive tasks because it allows a high number of concurrent operations without the overhead of traditional threads.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Example 2: I\/O-intensive operations<\/b><\/h3><p><span style=\"font-weight: 400;\">Virtual threads are especially useful for I\/O-intensive tasks. Here&#039;s an example showing how they can be used to perform multiple I\/O operations simultaneously:<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8a4d2da e-flex e-con-boxed e-con e-parent\" data-id=\"8a4d2da\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f7fe957 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-code-highlight\" data-id=\"f7fe957\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript line-numbers\">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\timport java.net.URL; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class VirtualThreadIO { public static void main(String[] args) { ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor(); for (int i = 0; i &lt; 10; i++) { executor.submit(() -&gt; { try { var url = new URL(&quot;http:\/\/example.com&quot;); try (var inputStream = url.openStream()) { \/\/ Perform I\/O operations } } catch (Exception e) { e.printStackTrace(); } }); } executor.shutdown(); } }\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1e4f7fa e-flex e-con-boxed e-con e-parent\" data-id=\"1e4f7fa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca5b5ff exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"ca5b5ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">This example demonstrates how to execute multiple I\/O requests in parallel without having to worry about the limitations of traditional thread models. Each virtual thread will wait for an I\/O operation without consuming valuable resources.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Integration with existing APIs<\/b><\/h3><p><span style=\"font-weight: 400;\">Virtual threads are designed to be compatible with existing Java APIs. This means that existing code based on traditional threads can be relatively easily migrated to virtual threads.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Use cases and benefits<\/b><\/h3><h5>Server applications<\/h5><p><span style=\"font-weight: 400;\">Server applications that handle a large number of concurrent requests benefit significantly from virtual threads. The ability to process thousands of requests with minimal overhead can dramatically improve the performance and efficiency of such applications.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h5>Asynchronous I\/O operations<\/h5><p><span style=\"font-weight: 400;\">Virtual threads are particularly well-suited for asynchronous I\/O operations because they prevent resource blocking. This enables more efficient use of I\/O resources and improves the overall performance of the application.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Challenges and considerations<\/b><\/h3><h5>Debugging and monitoring<\/h5><p><span style=\"font-weight: 400;\">While virtual threads offer many advantages, they can make debugging and monitoring more complex. Developers need to use new approaches and tools to effectively manage and monitor virtual threads.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h5>Compatibility with legacy code<\/h5><p><span style=\"font-weight: 400;\">In some cases, integrating virtual threads with legacy code can present challenges. Developers must carefully examine whether existing code is compatible with the new thread model.<\/span><\/p><p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p><h3><b>Conclusion<\/b><\/h3><p><span style=\"font-weight: 400;\">Virtual threads in Java represent a significant advancement in concurrent programming. They offer improved scalability, simplify development, and enable more efficient use of system resources. While they introduce new challenges, the potential for performance improvements in many application areas is enormous. As a developer in the modern Java world, it is crucial to familiarize yourself with this new paradigm.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5ce043d e-flex e-con-boxed e-con e-parent\" data-id=\"5ce043d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-364cd1d exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-image\" data-id=\"364cd1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads.avif\" class=\"attachment-large size-large wp-image-8570\" alt=\"\" srcset=\"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads.avif 1024w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads-300x300.avif 300w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads-150x150.avif 150w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads-768x768.avif 768w, https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads-12x12.avif 12w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Virtuelle Threads in Java: Ein Paradigmenwechsel in der Concurrent Programmierung \u00a0 Einf\u00fchrung in Virtuelle Threads Mit der Einf\u00fchrung von virtuellen Threads in Java (auch als Lightweight Threads bekannt) erleben wir eine signifikante Evolution in der Concurrent Programmierung. Traditionelle Threads, die direkt auf OS-Threads abgebildet werden, sind ressourcenintensiv und begrenzen die Skalierbarkeit moderner Anwendungen. Virtuelle Threads, [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":8570,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[45],"tags":[47,48],"class_list":["post-8569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wikipedia","tag-java-21","tag-virtual-threads"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Virtuelle Threads in Java 21 - CIIT Training<\/title>\n<meta name=\"description\" content=\"Der Artikel beschreibt virtuelle Threads in Java als eine leistungsf\u00e4hige, leichtgewichtige Alternative zu traditionellen Threads, die die Concurrent Programmierung vereinfacht und optimiert, illustriert durch ein einfaches Code-Beispiel.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ciit-training.com\/en\/2024\/01\/03\/virtuelle-threads-in-java-21\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Virtuelle Threads in Java 21 - CIIT Training\" \/>\n<meta property=\"og:description\" content=\"Der Artikel beschreibt virtuelle Threads in Java als eine leistungsf\u00e4hige, leichtgewichtige Alternative zu traditionellen Threads, die die Concurrent Programmierung vereinfacht und optimiert, illustriert durch ein einfaches Code-Beispiel.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ciit-training.com\/en\/2024\/01\/03\/virtuelle-threads-in-java-21\/\" \/>\n<meta property=\"og:site_name\" content=\"CIIT Training\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javatraining.at\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-03T21:04:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-04T12:05:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2023\/11\/CIIT_Logo_BrightBackground_Blau_ohne_at.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"wiki\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JavaTrainingAT\" \/>\n<meta name=\"twitter:site\" content=\"@JavaTrainingAT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"wiki\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/\"},\"author\":{\"name\":\"wiki\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/person\\\/da3b2b472673dcc7f0933808391c9ccf\"},\"headline\":\"Virtuelle Threads in Java 21\",\"datePublished\":\"2024-01-03T21:04:41+00:00\",\"dateModified\":\"2024-01-04T12:05:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/\"},\"wordCount\":666,\"publisher\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/01\\\/virtual_trheads.avif\",\"keywords\":[\"Java 21\",\"Virtual Threads\"],\"articleSection\":[\"Wikipedia\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/\",\"name\":\"Virtuelle Threads in Java 21 - CIIT Training\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/01\\\/virtual_trheads.avif\",\"datePublished\":\"2024-01-03T21:04:41+00:00\",\"dateModified\":\"2024-01-04T12:05:35+00:00\",\"description\":\"Der Artikel beschreibt virtuelle Threads in Java als eine leistungsf\u00e4hige, leichtgewichtige Alternative zu traditionellen Threads, die die Concurrent Programmierung vereinfacht und optimiert, illustriert durch ein einfaches Code-Beispiel.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/01\\\/virtual_trheads.avif\",\"contentUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/01\\\/virtual_trheads.avif\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/2024\\\/01\\\/03\\\/virtuelle-threads-in-java-21\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ciit-training.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Virtuelle Threads in Java 21\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#website\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/\",\"name\":\"CIIT Training\",\"description\":\"Javatraing\",\"publisher\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#organization\"},\"alternateName\":\"Javatraining\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ciit-training.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#organization\",\"name\":\"CIIT GmbH\",\"alternateName\":\"Schaffler & Gl\u00f6\u00dfl GmbH\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/CIIT_Logo_BrightBackground_Blau_ohne_at.png\",\"contentUrl\":\"https:\\\/\\\/ciit-training.com\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/CIIT_Logo_BrightBackground_Blau_ohne_at.png\",\"width\":512,\"height\":512,\"caption\":\"CIIT GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javatraining.at\",\"https:\\\/\\\/x.com\\\/JavaTrainingAT\",\"https:\\\/\\\/www.linkedin.com\\\/showcase\\\/javatraining.at\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ciit-training.com\\\/#\\\/schema\\\/person\\\/da3b2b472673dcc7f0933808391c9ccf\",\"name\":\"wiki\",\"url\":\"https:\\\/\\\/ciit-training.com\\\/en\\\/author\\\/wiki\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Virtuelle Threads in Java 21 - CIIT Training","description":"Der Artikel beschreibt virtuelle Threads in Java als eine leistungsf\u00e4hige, leichtgewichtige Alternative zu traditionellen Threads, die die Concurrent Programmierung vereinfacht und optimiert, illustriert durch ein einfaches Code-Beispiel.","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:\/\/ciit-training.com\/en\/2024\/01\/03\/virtuelle-threads-in-java-21\/","og_locale":"en_US","og_type":"article","og_title":"Virtuelle Threads in Java 21 - CIIT Training","og_description":"Der Artikel beschreibt virtuelle Threads in Java als eine leistungsf\u00e4hige, leichtgewichtige Alternative zu traditionellen Threads, die die Concurrent Programmierung vereinfacht und optimiert, illustriert durch ein einfaches Code-Beispiel.","og_url":"https:\/\/ciit-training.com\/en\/2024\/01\/03\/virtuelle-threads-in-java-21\/","og_site_name":"CIIT Training","article_publisher":"https:\/\/www.facebook.com\/javatraining.at","article_published_time":"2024-01-03T21:04:41+00:00","article_modified_time":"2024-01-04T12:05:35+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2023\/11\/CIIT_Logo_BrightBackground_Blau_ohne_at.png","type":"image\/png"}],"author":"wiki","twitter_card":"summary_large_image","twitter_creator":"@JavaTrainingAT","twitter_site":"@JavaTrainingAT","twitter_misc":{"Written by":"wiki","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#article","isPartOf":{"@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/"},"author":{"name":"wiki","@id":"https:\/\/ciit-training.com\/#\/schema\/person\/da3b2b472673dcc7f0933808391c9ccf"},"headline":"Virtuelle Threads in Java 21","datePublished":"2024-01-03T21:04:41+00:00","dateModified":"2024-01-04T12:05:35+00:00","mainEntityOfPage":{"@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/"},"wordCount":666,"publisher":{"@id":"https:\/\/ciit-training.com\/#organization"},"image":{"@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#primaryimage"},"thumbnailUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads.avif","keywords":["Java 21","Virtual Threads"],"articleSection":["Wikipedia"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/","url":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/","name":"Virtuelle Threads in Java 21 - CIIT Training","isPartOf":{"@id":"https:\/\/ciit-training.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#primaryimage"},"image":{"@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#primaryimage"},"thumbnailUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads.avif","datePublished":"2024-01-03T21:04:41+00:00","dateModified":"2024-01-04T12:05:35+00:00","description":"Der Artikel beschreibt virtuelle Threads in Java als eine leistungsf\u00e4hige, leichtgewichtige Alternative zu traditionellen Threads, die die Concurrent Programmierung vereinfacht und optimiert, illustriert durch ein einfaches Code-Beispiel.","breadcrumb":{"@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#primaryimage","url":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads.avif","contentUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2024\/01\/virtual_trheads.avif","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/ciit-training.com\/2024\/01\/03\/virtuelle-threads-in-java-21\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ciit-training.com\/"},{"@type":"ListItem","position":2,"name":"Virtuelle Threads in Java 21"}]},{"@type":"WebSite","@id":"https:\/\/ciit-training.com\/#website","url":"https:\/\/ciit-training.com\/","name":"CIIT Training","description":"Java training","publisher":{"@id":"https:\/\/ciit-training.com\/#organization"},"alternateName":"Javatraining","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ciit-training.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ciit-training.com\/#organization","name":"CIIT GmbH","alternateName":"Schaffler & Gl\u00f6\u00dfl GmbH","url":"https:\/\/ciit-training.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ciit-training.com\/#\/schema\/logo\/image\/","url":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2023\/11\/CIIT_Logo_BrightBackground_Blau_ohne_at.png","contentUrl":"https:\/\/ciit-training.com\/wp-content\/uploads\/sites\/2\/2023\/11\/CIIT_Logo_BrightBackground_Blau_ohne_at.png","width":512,"height":512,"caption":"CIIT GmbH"},"image":{"@id":"https:\/\/ciit-training.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javatraining.at","https:\/\/x.com\/JavaTrainingAT","https:\/\/www.linkedin.com\/showcase\/javatraining.at\/"]},{"@type":"Person","@id":"https:\/\/ciit-training.com\/#\/schema\/person\/da3b2b472673dcc7f0933808391c9ccf","name":"wiki","url":"https:\/\/ciit-training.com\/en\/author\/wiki\/"}]}},"_links":{"self":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/posts\/8569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/comments?post=8569"}],"version-history":[{"count":0,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/posts\/8569\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/media\/8570"}],"wp:attachment":[{"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/media?parent=8569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/categories?post=8569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ciit-training.com\/en\/wp-json\/wp\/v2\/tags?post=8569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}