Meta tags:
Headings (most frequently used words):
structured, concurrency, contents, history, variations, see, also, references, external, links,
Text of the page (most frequently used words):
the (30), #structured (26), #concurrency (21), and (17), programming (13), concurrent (10), retrieved (9), oriented (9), based (9), edit (9), logic (8), wikipedia (7), this (7), language (7), smith (7), threads (7), page (6), with (6), that (6), was (5), functional (5), program (5), function (5), links (5), 2019 (5), nathaniel (5), contents (4), search (4), code (4), description (4), from (4), object (4), flow (4), computer (4), elizarov (4), 2022 (4), march (4), september (4), tools (4), have (4), history (4), control (4), hide (4), move (4), sidebar (4), view (3), statement (3), non (3), computing (3), paradigm (3), constraint (3), point (3), martin (3), sústrik (3), swift (3), roman (3), concept (3), error (3), before (3), time (3), library (3), all (3), exit (3), model (3), main (3), add (2), languages (2), toggle (2), table (2), safety (2), contact (2), about (2), privacy (2), policy (2), terms (2), may (2), using (2), october (2), 2025 (2), categories (2), short (2), wikidata (2), paradigms (2), list (2), multi (2), driven (2), data (2), example (2), inductive (2), automatic (2), parallel (2), pattern (2), system (2), set (2), probabilistic (2), english (2), modeling (2), reactive (2), level (2), free (2), higher (2), order (2), talk (2), implementations (2), notes (2), considered (2), harmful (2), external (2), draft (2), proposal (2), kotlin (2), needed (2), 2018 (2), 2017 (2), trio (2), 2016 (2), references (2), see (2), also (2), thread (2), children (2), parent (2), scope (2), however (2), general (2), variations (2), later (2), his (2), for (2), which (2), completed (2), constructs (2), encapsulation (2), here (2), allows (2), errors (2), propagated (2), structure (2), improving (2), clarity (2), development (2), appearance (2), upload (2), file (2), changes (2), read (2), article (2), log (2), create (2), account (2), donate (2), menu (2), topic, mobile, cookie, statistics, developers, conduct, legal, contacts, disclaimers, text, available, under, additional, apply, site, you, agree, registered, trademark, profit, organization, wikimedia, foundation, inc, use, creative, commons, attribution, sharealike, license, rendered, parsoid, last, edited, utc, hidden, different, articles, https, org, index, php, title, structured_concurrency, oldid, 1317873261, type, comparison, comparisons, lists, subjects, roles, literate, features, event, components, aspects, separation, concerns, template, symbolic, self, modifying, reflective, vibe, coding, demonstration, bayesian, synthesis, stage, metalinguistic, abstraction, hygienic, macro, interactive, homoiconicity, generic, extensible, dynamic, attribute, metaprogramming, service, relativistic, process, partitioned, global, address, space, models, organic, multitier, macroprogramming, choreographic, mutual, exclusion, actor, visual, production, graph, rewriting, transformation, templating, tactile, stack, simulation, theoretic, scripting, scientific, quantum, filters, pipes, natural, low, comprehension, interface, grammar, end, user, differentiable, spacecraft, command, action, automata, array, algebraic, dsl, domain, specific, query, ontology, nondeterministic, answer, abductive, synchronous, streams, signals, dataflow, monad, value, concatenative, applicative, expression, style, dependent, types, gadts, strict, total, purely, partial, application, anonymous, recursive, declarative, uniform, call, syntax, persistent, immutable, agent, prototype, class, nested, invariant, design, contract, large, small, procedural, modular, block, jackson, structures, imperative, lightning, sustrik, some, fosdem, cross, discussion, participation, forum, pressler, ron, oracle, openjdk, jep, incubator, mccall, john, groff, joe, gregor, doug, malawski, konrad, github, apple, evolution, repo, jetbrains, coroutines, basics, july, video, hydra, distributed, conference, minutes, name, finalize, whole, stumble, onto, blog, post, announcing, february, april, august, major, variation, how, one, member, tree, handled, simple, will, merely, wait, until, siblings, failing, run, completion, propagating, could, take, indefinite, amount, alternative, employ, cancellation, mechanism, typically, cooperative, scheme, allowing, invariants, honored, terminate, sibling, expedient, manner, 2021, adopted, year, published, java, formulated, developer, libdill, starting, further, refined, who, introduced, nursery, implementation, called, meanwhile, independently, came, upon, same, ideas, while, developing, experimental, became, standard, coroutine, python, goroutines, zeromq, 1960s, embodied, multiprocessing, like, early, ensuring, argues, not, true, unaware, joining, behavior, thus, unable, enforce, openmp, fork, join, analogous, uses, encapsulate, sequential, statements, subroutines, core, execution, encompassing, kernel, userland, processes, way, clear, entry, points, ensure, spawned, such, managed, native, handling, mechanisms, each, particular, remain, readily, evident, source, despite, presence, effective, must, applied, consistently, throughout, levels, otherwise, leak, out, become, orphaned, fail, runtime, correctly, aimed, quality, approach, encyclopedia, item, other, projects, printable, version, download, pdf, print, export, switch, legacy, parser, get, shortened, url, cite, information, permanent, link, related, what, actions, qaraqalpaqsha, 日本語, فارسی, top, personal, special, pages, recent, community, portal, learn, help, contribute, random, current, events, navigation, jump, content,
Text of the page (random words):
structured concurrency wikipedia jump to content main menu main menu move to sidebar hide navigation main page contents current events random article about wikipedia contact us contribute help learn to edit community portal recent changes upload file special pages search search appearance donate create account log in personal tools donate create account log in contents move to sidebar hide top 1 history 2 variations 3 see also 4 references 5 external links toggle the table of contents structured concurrency 3 languages فارسی 日本語 qaraqalpaqsha edit links article talk english read edit view history tools tools move to sidebar hide actions read edit view history general what links here related changes upload file permanent link page information cite this page get shortened url switch to legacy parser print export download as pdf printable version in other projects wikidata item appearance move to sidebar hide from wikipedia the free encyclopedia programming paradigm for improving clarity and development time of a computer program structured concurrency is a programming paradigm aimed at improving the clarity quality and development time of a computer program by using a structured approach to concurrent programming the core concept is the encapsulation of concurrent threads of execution here encompassing kernel and userland threads and processes by way of control flow constructs that have clear entry and exit points and that ensure all spawned threads have completed before exit such encapsulation allows errors in concurrent threads to be propagated to the control structure s parent scope and managed by the native error handling mechanisms of each particular computer language it allows control flow to remain readily evident by the structure of the source code despite the presence of concurrency to be effective this model must be applied consistently throughout all levels of the program otherwise concurrent threads may leak out become orphaned or fail to have runtime errors correctly propagated structured concurrency is analogous to structured programming which uses control flow constructs that encapsulate sequential statements and subroutines history edit the fork join model from the 1960s embodied by multiprocessing tools like openmp is an early example of a system ensuring all threads have completed before exit however smith argues that this model is not true structured concurrency as the programming language is unaware of the joining behavior and is thus unable to enforce safety 1 the concept was formulated in 2016 by martin sústrik a developer of zeromq with his c library libdill with goroutines as a starting point 2 it was further refined in 2017 by nathaniel j smith who introduced a nursery pattern in his python implementation called trio 3 meanwhile roman elizarov independently came upon the same ideas while developing an experimental coroutine library for the kotlin language 4 5 which later became a standard library 6 in 2021 swift adopted structured concurrency 7 later that year a draft proposal was published to add structured concurrency to java 8 variations edit a major point of variation is how an error in one member of a concurrent thread tree is handled simple implementations will merely wait until the children and siblings of the failing thread run to completion before propagating the error to the parent scope however that could take an indefinite amount of time the alternative is to employ a general cancellation mechanism typically a cooperative scheme allowing program invariants to be honored to terminate the children and sibling threads in an expedient manner see also edit structured programming references edit smith nathaniel j 25 april 2018 notes on structured concurrency or go statement considered harmful retrieved 1 august 2019 sústrik martin 7 february 2016 structured concurrency retrieved 20 october 2025 smith nathaniel j 10 march 2017 announcing trio retrieved 23 september 2022 elizarov roman 12 september 2018 structured concurrency retrieved 21 september 2019 elizarov roman 11 july 2019 structured concurrency video hydra distributed computing conference 42 minutes in retrieved 21 september 2019 we needed a name and we needed to finalize this whole concept and we stumble onto this blog post by nathaniel j smith coroutines basics structured concurrency kotlin jetbrains retrieved 3 march 2022 mccall john groff joe gregor doug malawski konrad swift structured concurrency proposal apple s swift evolution repo github retrieved 3 march 2022 pressler ron jep draft structured concurrency incubator openjdk oracle retrieved 3 march 2022 external links edit notes on structured concurrency or go statement considered harmful by nathaniel j smith structured concurrency forum cross computer language discussion of structured concurrency with participation by sústrik smith and elizarov fosdem 2019 structured concurrency lightning talk by martin sustrik with links to some implementations v t e programming paradigms imperative structured jackson structures block structured modular non structured procedural programming in the large and in the small design by contract invariant based nested function object oriented class based prototype based object based agent immutable object persistent uniform function call syntax declarative functional recursive anonymous function partial application higher order higher order function purely functional total strict gadts dependent types functional logic point free style expression oriented applicative concatenative function level value level monad dataflow flow based reactive functional reactive signals streams synchronous logic abductive logic answer set constraint constraint logic inductive logic nondeterministic ontology probabilistic logic query domain specific language dsl algebraic modeling array automata based action command spacecraft differentiable end user grammar oriented interface description language oriented list comprehension low code modeling natural language non english based page description pipes and filters probabilistic quantum scientific scripting set theoretic simulation stack based system tactile templating transformation graph rewriting production pattern visual concurrent parallel actor based automatic mutual exclusion choreographic programming concurrent logic concurrent constraint logic concurrent oo macroprogramming multitier programming organic computing parallel programming models partitioned global address space process oriented relativistic programming service oriented structured concurrency metaprogramming attribute oriented automatic inductive dynamic extensible generic homoiconicity interactive macro hygienic metalinguistic abstraction multi stage program synthesis bayesian by demonstration by example vibe coding reflective self modifying code symbolic template separation of concerns aspects components data driven data oriented event driven features literate roles subjects comparisons lists comparison multi paradigm object oriented functional list oo by type retrieved from https en wikipedia org w index php title structured_concurrency oldid 1317873261 categories programming paradigms concurrent computing hidden categories articles with short description short description is different from wikidata this page was last edited on 20 october 2025 at 15 04 utc page was rendered with parsoid text is available under the creative commons attribution sharealike 4 0 license additional terms may apply by using this site you agree to the terms of use and privacy policy wikipedia is a registered trademark of the wikimedia foundation inc a non profit organization privacy policy about wikipedia disclaimers contact wikipedia legal safety contacts code of conduct developers statistics cookie statement mobile view search search toggle the table of contents structured concurrency 3 languages add topic
|