Thread (computing) (original) (raw)
Un thread ou fil (d'exécution) ou tâche (terme et définition normalisés par ISO/CEI 2382-7:2000 ; autres appellations connues : processus léger, fil d'instruction, processus allégé, exétron, voire unité d'exécution ou unité de traitement[réf. nécessaire]) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle. Toutefois, là où chaque processus possède sa propre mémoire virtuelle, les threads d'un même processus se partagent sa mémoire virtuelle. En revanche, tous les threads possèdent leur propre pile d'exécution.
Property | Value |
---|---|
dbo:abstract | En informàtica, un fil d'execució (thread en anglès) és la unitat més petita de processament que pot ser programada pels sistemes operatius, i que permet a un procés executar diferents tasques al mateix temps. Cada fil té un procés que ha de ser executat. Aquesta característica dona la possibilitat al programador de dissenyar un programa que executi diferents funcions concurrentment. La tècnica de programació amb fils d'execució s'anomena multifil (multithreading en anglès) i permet simplificar el disseny d'aplicacions concurrents i millorar el rendiment de la creació de processos. Cadascun dels fils accedix a unes dades, quan una d'aquestes és utilitzada per dos o més fils es diu que la dada està en conflicte. Cada fil té una secció on s'accedix a estes variables, la qual s'anomena secció crítica. Tots el fils s'executen concurrentment. Aquesta característica és possible gràcies als canvis de context. Els canvis de context es produeixen quan un fil que està al processador és eliminat i entra un altre. Fent canvis de context molt ràpidament donem la sensació de què tots els fils s'executen simultàniament. En els sistemes multifil tipus de sistemes, un mateix procés pot estar format per múltiples fils d'execució. Els diferents fils que formen part d'un mateix procés, comparteixen certs recursos com l'espai de memòria, els arxius oberts, els permisos, etc. En canvi, cada fil consta de les seves pròpies instruccions, la seva pròpia pila d'execució, s'executen a diferents velocitats (cada fil té el seu propi registre PC) i tenen el seu propi estat d'execució. Els fils d'execució, també són coneguts com a processos lleugers. L'origen del nom rau en el fet que els fils d'execució consumeixen menys recursos de sistema que els processos. La majoria de llenguatges de programació moderns, disposen de llibreries específiques per tal de programar amb fils i altres com C o C++ han d'utilitzar les crides de sistema que donen aquest suport. Un parell d'exemples típics on s'utilitzen fils són: * Aplicacions gràfiques: Un fil s'encarrega de la interfície gràfica d'usuari mentrestant un altre realitza les operacions. * Aplicacions client/servidor: el servidor crea múltiples fils per tal de donar servei a múltiples clients alhora. En sistemes POSIX hi ha 2 llibreries per a treballar amb fils d'execució: * per a Linux * (ca) في المعلوماتية والحوسبة، التشعب (بالإنجليزية: Thread) أو سلسلة أو شريط التعليمات (بالإنجليزية: thread of execution) أو التشعبات الحاسوبية (بالإنجليزية: Threads) هو عبارة عن مجموعة من التعليمات التي تشكل مساراً لتنفيذ العملية وبما أنه مجرد مسار فإنه لا يحتاج لموارد خاصة به حيث أنه يستخدم موارد العملية ذاتها. تجعل التشعبات البرنامج الحاسوبي يبدو وكأنه يقوم بأكثر من بشكل متزامن، لكن إذا كانت وحدة المعالجة المركزية بأكثر من نواة فانه يقوم بعمل تزامن حقيقي، فعلى سبيل المثال يمكن للبرنامج الإبقاء على واجهة المستخدم المرئية تتفاعل مع المستخدم على الرغم من قيامه بمهمة أخرى كالاتصال بمخدم. تتميز التشعبات عن بشكل عام في طريقة إنشاء سلسلة التعليمات وطريقة مشاركتها للمصادر وأسلوب تنفيذ المعالج لها بشكل مختلف عن العمليات لكن هذه الفوارق في النهاية تختلف حسب نظام التشغيل. يمكن تنفيذ تشعبات تعليمات متعددة بشكل متوازٍ على نفس المعالج وهذا ما يدعى بالتنفيذ المتعدد للتشعبات (بالإنجليزية: multithreading) ويحدث عن طريق computer multitasking أو ما يدعى بتجزئة الوقت time slicing وحيث يقوم معالج مركزي بالتبديل بين سلاسل التعليمات المختلفة. (ضمن هذا المفهوم التنفيذ ليس متزامنا بالنسبة لمعالج واحد لكننا نعتبره تزامنا مزيفا لأن التبديل يتم بسرعة كبيرة تعطينا انطباع بوهم التزامن)، بالمقابل يمكننا انجاز تزامن حقيقي عن طريق الاستعانة بحاسوب متعدد المعالجات أو معالجات متعددة الأنوية. في الوقت الراهن، العديد من أنظمة التشغيل تدعم تجزئة الزمن وتعدد المهام، أو التنفيذ متعدد المعالجات multiprocessor threading عن طريق scheduler. تمكن أنظمة التشغيل المبرمجين من التعامل مع عدة سلاسل تعليمات عن طريق واجهة system call. بعض التطبيقات لهذا الموضوع يدعى سلسلة تعليمات النواة kernel thread حيث تكون العمليات الخفيفة lightweight process أنماطا خاصة من سلاسل تعليمات النواة والتي تتشارك بنفس الحالة ونفس المعلومات. ويبقى المبرمجون قادرين على تطبيق سَلسَلة التعليمات threading عن طريق المؤقتات، الإشارات، أو وسائل أخرى لتفسير تسلسل تنفيذ التعليمات وبالتالي الحصول على تجزئة زمنية جيدة. وهذا ما يدعى أحيانا: سلاسل تعليمات مجال المستخدم user-space threads.في أغلب أنظمة التشغيل لايتم تنفيذ سلاسل تعليمات المستخدم الا عبر سلسلة تعليمات النواة. علاقة سلاسل مجال المستخدم وسلاسل تعليمات النواة: هناك اربع أنواع من العلاقات تربط النوعين من السلاسل وهي كالتالي. 1. * واحد إلى متعدد: في هذا النوع من العلاقات يرتبط كل تشعب نواة باكثر من تشعب مستخدم. تتميز باستغلال تشعبات النواة لكنها في نفس الوقت تتسبب في الضغط على تشعبات النواة، يستخدم هذا النوع في أنظمة جرين سولاريس، وجنو. 2. * واحد لواحد: في هذا النوع من العلاقات يرتبط كل تشعب من تشعبات المستخدم بتشعب واحد فقط من تشعبات النواة، يتضح لنا انه لو ان هناك تشعب واحد من تشعبات النواة تعطل فان تشعب المستخدم الذي كان متصلا به لن ينففذ ابداً. 3. * متعدد لمتعدد: هذا النوع من العلاقات تقوم كل مجموعة من تشعبات النواة بإدارة مجموعة من تشعبات المستخدم. 4. * نمط المستويين: يستخدم هذا النوع من العلاقات هجين من النوعين السابقين بحيث يسمح بعلاقات واحد لواحد ومتعدد لمتعدد، هذا النوع هو الأكثر استخداما حالياً هناك ثلاث مكتبات أساسية للتشعبات أو السلاسل: (1) PThreads: وهي اختصار لل POSIX Threads وتستخدم في يونكس وماكنتوش وغيرهما كما تسمح باستخدام سلاسل على مستوى النواة أو على مستوى المستخدم. (2) Win32 Threads : وهي المستخدمة في أنظمة تشغيل ويندوز «النوافذ» ولا تسمح للمستخدم في التعامل مع تشعبات «سلاسل» النواة وانما تتوفر له هذه السلاسل في مجال المستخدم فقط. (3) Java Threads : وهي خاصة ببرامج لغة الجافا وتقوم بإنشاء سلاسل خاصة بكل برنامج على حدة. في بعض الأحيان يستخدمون مصطلح سلسلة تعليمات من اجل threaded code وهو نمط من الشفرات البرمجية يتألف بالكامل من استدعاءات subroutine. في الغالب نحن معتادون على تعدد المهام في نظام التشغيل والسماحية لعمل أكثر من برنامج في وقت واحد. البرامج متعددة التشعبات (بالإنجليزية: Multithreaded programs) تأخذ فكرة تعدد المهام عن طريق اخذها في مستوى أقل، فكل برنامج فردي يظهر عدة مهام في نفس الوقت وكل مهمه تسمى تشعب (حاسوب). تستطيع البرامج تشغيل أكثر من تشعب (حاسوب) في نفس الوقت وهي اختصار لـ تشعب التحكم والبرامج التي تستطيع تشغيل أكثر من تشعب حاسوبي في كل مره تسمى متعددة التشعبات الحاسوبية. (ar) Vlákno (též vlákno řízení, anglicky thread) označuje v informatice spuštěnou instanci počítačového programu. O vláknech mluvíme v souvislosti s možností vytvořit více vláken v jednom procesu, což se nazývá multithreading. Jednotlivá vlákna mohou v rámci procesu vykonávat různé činnosti – například čtení požadavků uživatele, zpracování dat, vykreslování výstupu na obrazovce a síťovou komunikaci – nebo stejnou činnost nad různými daty (např. obsluhu více síťových spojení). U počítačů s více procesory nebo na vícejádrových procesorech mohou tyto činnosti probíhat současně (paralelně), v ostatních případech kvaziparalelně (rychlým přepínáním mezi vlákny se vytváří zdání paralelismu). Technicky, v systémech a programech, které nepodporují multithreading, má každý proces jen jediné vlákno. Podpora multithreadingu znamená, že je možné v rámci jednoho procesu vytvořit větší počet vláken. Vlákno můžeme považovat za odlehčený proces – zatímco běžné procesy jsou navzájem striktně odděleny, vlákna jednoho procesu sdílí paměťový prostor a další systémové prostředky. Sdílená paměť zjednodušuje komunikaci mezi vlákny, zvyšuje však riziko souběhu (anglicky race condition). Multithreading snižuje režii operačního systému při přepínání mezi procesy (při změně kontextu), která je nutná pro zajištění multitaskingu - lze jej tak považovat za další stupeň multitaskingu. (cs) Στην πληροφορική, ένα νήμα εκτέλεσης (Αγγλικά: thread) είναι η μικρότερη ακολουθία προγραμματισμένων εντολών που μπορεί να υποστεί διαχείριση ανεξάρτητα από το λειτουργικό σύστημα. Ένα νήμα είναι μια ελαφριά διεργασία. Η υλοποίηση των νημάτων και των διεργασιών διαφέρει από το ένα λειτουργικό σύστημα στο άλλο. Στις περισσότερες όμως περιπτώσεις ένα νήμα εμπεριέχεται σε μια διεργασία. Μπορούν να υπάρχουν πολλαπλά νήματα μέσα στην ίδια διεργασία, τα οποία μπορούν να μοιράζονται πόρους από το σύστημα, όπως μνήμη. Διαφορετικές διεργασίες δεν μπορούν να μοιράζονται τους ίδιους πόρους. Συγκεκριμένα, τα νήματα μιας διεργασίας περιέχουν τις εντολές προς την εκτελούμενη διεργασία (δηλαδή τον κώδικα της) και το εννοιολογικό της πλαίσιο (οι τιμές των μεταβλητών της σε οποιαδήποτε χρονική στιγμή. Σε έναν απλό επεξεργαστή, η πολυνημάτωση (multithreading) πραγματοποιείται με τη μέθοδο της πολυπλεξίας με διαίρεση χρόνου (όπως στην πολυεπεξεργασία): ο επεξεργαστής μεταπηδάει μεταξύ των διάφορων νημάτων. Αυτή η εναλλαγή μεταξύ των διεργασιών ονομάζεται (Αγγλικά: context switch) , και συμβαίνει σε πολύ τακτά χρονικά διαστήματα, τέτοια έτσι ώστε ο χρήστης έχει την εντύπωση ότι τα νήματα εκτελούνται την ίδια στιγμή. Μόνο σε έναν επεξεργαστή με πολλούς επεξεργαστικούς πυρήνες, τα νήματα εκτελούνται πραγματικά ταυτόχρονα και κάθε πυρήνας εκτελεί ένα συγκεκριμένο νήμα ή εργασία. Η υποστήριξη για νήματα ποικίλει ανάμεσα στις γλώσσες προγραμματισμού: κάποιες γλώσσες απλά δεν υποστηρίζουν την εκτέλεση παραπάνω του ενός νήματος για ένα πρόγραμμα ταυτόχρονα. Παραδείγματα τέτοιων γλωσσών είναι η Python και η OCaml οι οποίες παρόλο που έχουν βιβλιοθήκες για δημιουργία νημάτων δεν εκτελούνται τα νήματα ταυτόχρονα . Άλλες γλώσσες περιορίζονται στη χρήση νημάτων χρήστη τα οποία δεν είναι ορατά στο πυρήνα και έτσι δεν μπορούν να εκτελεστούν ταυτόχρονα. Μόνο τα νήματα πυρήνα που είναι ορατά στον του πυρήνα, μπορούν να εκτελεστούν ταυτόχρονα. Πολλά σύγχρονα λειτουργικά συστήματα υποστηρίζουν τόσο νήματα καταμερισμού χρόνου, όσο και νήματα παράλληλης πολυεπεξεργασίας, στον χρονοδρομολογητή τους. Ο πυρήνας ενός λειτουργικού συστήματος επιτρέπει στους προγραμματιστές να χειρίζονται τα νήματα μέσω της διεπαφής κλήσεων συστήματος. Ορισμένες υλοποιήσεις λέγονται νήμα πυρήνα, ενώ ελαφρά διεργασία είναι ο ειδικός τύπος νήματος πυρήνα που μοιράζεται την ίδια κατάσταση και πληροφορίες. Στα συστήματα unix υπάρχει το POSIX στάνταρντ για δημιουργία POSIX νημάτων. (el) In der Informatik bezeichnet Thread [θɹɛd] (englisch thread, ‚Faden‘, ‚Strang‘) – auch Aktivitätsträger oder leichtgewichtiger Prozess genannt – einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines Prozesses. Es wird zwischen zwei Arten von Threads unterschieden: 1. * Threads im engeren Sinne, die sogenannten Kernel-Threads, laufen ab unter Steuerung durch das Betriebssystem. 2. * Im Gegensatz dazu stehen die User-Threads, die das Computerprogramm des Anwenders komplett selbst verwalten muss. Dieser Artikel hier behandelt den Thread im engeren Sinne, also den Kernelthread. (de) En sistemas operativos, un hilo o hebra (del inglés thread), proceso ligero o subproceso es una secuencia de tareas encadenadas muy pequeña que puede ser ejecutada por un sistema operativo. La destrucción de los hilos antiguos por los nuevos es una característica que no permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, la situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo que otra tarea. Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. El hecho de que los hilos de ejecución de un mismo proceso compartan los recursos hace que cualquiera de estos hilos pueda modificar estos recursos. Cuando un hilo modifica un dato en la memoria, los otros hilos acceden a ese dato modificado inmediatamente. Lo que es propio de cada hilo es el contador de programa, la pila de ejecución y el estado de la CPU (incluyendo el valor de los registros). El proceso sigue en ejecución mientras al menos uno de sus hilos de ejecución siga activo. Cuando el proceso finaliza, todos sus hilos de ejecución también han terminado. Asimismo en el momento en el que todos los hilos de ejecución finalizan, el proceso no existe más y todos sus recursos son liberados. Algunos lenguajes de programación tienen características de diseño expresamente creadas para permitir a los programadores lidiar con hilos de ejecución (como Java o Delphi). Otros (la mayoría) desconocen la existencia de hilos de ejecución y estos deben ser creados mediante llamadas de biblioteca especiales que dependen del sistema operativo en el que estos lenguajes están siendo utilizados (como es el caso del C y del C++). (es) Un thread ou fil (d'exécution) ou tâche (terme et définition normalisés par ISO/CEI 2382-7:2000 ; autres appellations connues : processus léger, fil d'instruction, processus allégé, exétron, voire unité d'exécution ou unité de traitement[réf. nécessaire]) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle. Toutefois, là où chaque processus possède sa propre mémoire virtuelle, les threads d'un même processus se partagent sa mémoire virtuelle. En revanche, tous les threads possèdent leur propre pile d'exécution. (fr) Ulir, utas atau thread (singkatan dari "thread of execution") dalam ilmu komputer, diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). Ulir sebenarnya mirip dengan proses, tetapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda.Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan time-division multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu. Teknik penggantian (switching) ini memungkinkan CPU seolah-olah bekerja secara serempak. * l * * s (in) Un thread o thread di esecuzione, in informatica, è una suddivisione di un processo in due o più filoni (istanze) o sottoprocessi che vengono eseguiti concorrentemente da un sistema di elaborazione monoprocessore (monothreading) o multiprocessore (multithreading) o multicore. (it) In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of threads and processes differs between operating systems, but in most cases a thread is a component of a process. The multiple threads of a given process may be executed concurrently (via multithreading capabilities), sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. (en) ( 전자 게시판의 종류에 대해서는 스레드 플로트형 게시판 문서를 참고하십시오.) 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (ko) Een thread (draadje) is de kleinste opeenvolging van geprogrammeerde instructies die onafhankelijk van elkaar kunnen worden beheerd door een scheduler. Computers met multitasking kunnen hun tijd zeer snel tussen verschillende taken verdelen. Multiprocessor-computers kunnen ook gelijktijdig taken uitvoeren. Door een grotere taak te verdelen in meerdere threads kunnen sommige taken sneller uitgevoerd worden door de computer. In de meeste besturingssystemen vormen twee proceskenmerken de kern van een proces: * bezit van bronnen * inroosteren (scheduling) en uitvoering Deze twee kenmerken zijn onafhankelijk en kunnen daarom ook onafhankelijk behandeld worden door het systeem. Om een onderscheid te maken wordt de eenheid voor toedeling (dispatch) doorgaans een thread genoemd en de eenheid voor bronbezit een proces of taak. Een proces kan meerdere threads bevatten. Het is de kleinste reeks van geprogrammeerde instructies die onafhankelijk van elkaar kunnen worden beheerd door een scheduler (nl) スレッド(thread)とは、特定の処理を行うための一貫性のある命令の流れのことであり、プロセッサ利用の最小単位。メインメモリ上のデータを内包するプロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドはプロセス内で動作するという関係性がある。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。複数のスレッドを用意することで、並列処理が実現できる(この手法をマルチスレッドプログラミングと呼ぶ)。 プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。例えば即応性が求められるGUIを描画したりユーザーと対話したりするためのイベントループを実行するフローと、処理に時間のかかるネットワークアクセスやファイルI/O、低速ハードウェアとの通信などを実行するフローは完全に分離してしまったほうが都合がよい。これを単一のコンテキスト(シングルスレッド)上で実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。あるいは、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズム(アプリケーションロジック)に集中しやすくなり、プログラムの構造が改善されるという効果がある。 (ja) Wątek (ang. thread) – część programu wykonywana współbieżnie w obrębie jednego procesu; w jednym procesie może istnieć wiele wątków. Różnica między zwykłym procesem a wątkiem polega na współdzieleniu przez wszystkie wątki działające w danym procesie przestrzeni adresowej oraz wszystkich innych struktur systemowych (np. listy otwartych plików, gniazd itp.) – z kolei procesy posiadają niezależne zasoby. Ta cecha ma dwie ważne konsekwencje: 1. * Wątki wymagają mniej zasobów do działania i też mniejszy jest czas ich tworzenia. 2. * Dzięki współdzieleniu przestrzeni adresowej (pamięci) wątki jednego zadania mogą się między sobą komunikować w bardzo łatwy sposób, niewymagający pomocy ze strony systemu operacyjnego. Przekazanie dowolnie dużej ilości danych wymaga przesłania jedynie wskaźnika, zaś odczyt (a niekiedy zapis) danych o rozmiarze nie większym od słowa maszynowego nie wymaga synchronizacji (procesor gwarantuje atomowość takiej operacji). Wątki są udostępniane wprost przez system operacyjny MS Windows, w systemach Linux, BSD i innych dostępna jest biblioteka pthread, dająca jednolity interfejs, ukrywający szczegóły implementacji. W językach programowania używających maszyn wirtualnych (Python, Java itp.) są dostępne również tzw. zielone wątki, które nie są obsługiwane przez system operacyjny, ale samą maszynę wirtualną – to pozwala m.in. na realizację współbieżności nawet wtedy, gdy docelowy system operacyjny nie udostępnia wątków. (pl) Thread (em português: linha ou encadeamento de execução) é uma forma como um processo/tarefa de um programa de computador é divido em duas ou mais tarefas que podem ser executadas concorrentemente ("simultâneo"). O suporte à thread é fornecido pelo sistema operacional no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread, KLT), ou implementada através de uma biblioteca de uma determinada linguagem de programação (User-Level Thread, ULT). Uma thread permite, por exemplo, que o utilizador de um programa utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações. Em equipamentos (hardwares) que possuem apenas uma única CPU, cada thread é processada de forma aparentemente simultânea, pois a mudança entre uma thread e outra é feita de forma tão rápida que para o utilizador, isso está acontecendo concorrentemente. Em equipamentos com múltiplos CPUs (também chamados multi-cores), as threads são realizadas realmente de forma simultânea. Os sistemas que suportam uma única thread (em real execução) são chamados de monothread enquanto que os sistemas que suportam múltiplas threads são chamados de multithread (multitarefa). (pt) En tråd eller exekveringstråd (engelska: thread) är en av flera parallella instruktionssekvenser inom en programprocess i en dator i många operativsystem. En tråd liknar men ska inte sammanblandas med en process, som kräver mer datorresurser vid uppstart av och växling mellan processer. Varje tråd har en egen instruktionspekare och anropsstack, men delar i regel ett gemensamt adressutrymme med övriga trådar inom processen. Begreppet flertrådning (eng. multithreading) kan antingen åsyfta datorprogram som utnyttjar flera samtidiga trådar för effektiv multikörning, eller processorerarkitektur som ger hårdvarustöd för snabb växling mellan flera samtidiga trådar. (sv) Потік (англ. thread) або повніше потік виконання (англ. thread of execution), часто застосовуються назви нитка, нитка виконання та англіцизм тред — в інформатиці так називається спосіб програми розділити себе на дві чи більше паралельні задачі. Реалізація потоків та процесів відрізняються в різних операційних системах, але загалом потік міститься всередині процесу і різні потоки одного процесу спільно розподіляють деякі ресурси, у той час як різні процеси ресурси не розподіляють. У системах з одним процесором багатопотоковість реалізується загалом поділом часу виконання («кванти часу»), дуже подібно до паралельного виконання багатьох задач: процесор послідовно переключається між різними потоками. Це переключення контексту відбувається настільки швидко, що в кінцевого користувача створюється ілюзія одночасного виконання. На багатопроцесорних чи на багатоядерних системах робота потоків здійснюється справді одночасно, оскільки різні потоки і процеси виконуються буквально одночасно різними процесорами або ядрами процесора. Особливості квантування в операційній системі Windows розглянуто в статті Квант (Windows). Багато сучасних операційних систем прямо підтримують квантування часу і багатопроцесорну роботу потоків через планувальник процесів. Ядро операційної системи дозволяє програмісту маніпулювати потоками через інтерфейс системних викликів. Деякі реалізації викликають потоки ядра, оскільки (англ. lightweight process, LWP) є спеціальним типом потоків ядра, що розподіляють деякі стани та інформацію. Поза тим, програма може емулювати роботу потоків, використовуючи таймер, сигнали або інші методи, щоб перервати власне виконання і послідовно виконувати різні задачі власним квантуванням часу. Такий спосіб іноді зветься потоками користувацького простору (англ. user-space threads) або волокнами. (uk) Пото́к выполне́ния (тред; от англ. thread — нить) — наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы. Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса. Несколько потоков выполнения могут существовать в рамках одного и того же процесса и совместно использовать ресурсы, такие как память, тогда как процессы не разделяют этих ресурсов. В частности, потоки выполнения разделяют последовательность инструкций процесса (его код) и его контекст — значения переменных (регистров процессора и стека вызовов), которые они имеют в любой момент времени. В качестве аналогии потоки выполнения процесса можно уподобить нескольким вместе работающим поварам. Все они готовят одно блюдо, читают одну и ту же кулинарную книгу с одним и тем же рецептом и следуют его указаниям, причём не обязательно все они читают на одной и той же странице. На одном процессоре многопоточность обычно происходит путём временного мультиплексирования (как и в случае многозадачности): процессор переключается между разными потоками выполнения. Это переключение контекста обычно происходит достаточно часто, чтобы пользователь воспринимал выполнение потоков или задач как одновременное. В многопроцессорных и многоядерных системах потоки или задачи могут реально выполняться одновременно, при этом каждый процессор или ядро обрабатывает отдельный поток или задачу. Многие современные операционные системы поддерживают как временные нарезки от планировщика процессов, так и многопроцессорные потоки выполнения. Ядро операционной системы позволяет программистам управлять потоками выполнения через интерфейс системных вызовов. Некоторые реализации ядра называют потоком ядра, другие же — легковесным процессом (англ. light-weight process, LWP), представляющим собой особый тип потока выполнения ядра, который совместно использует одни и те же состояния и данные. Программы могут иметь пользовательское пространство потоков выполнения при создании потоков с помощью таймеров, сигналов или другими методами, позволяющими прервать выполнение и создать временную нарезку для конкретной ситуации (Ad hoc). (ru) 线程(英語:thread)是操作系统能夠進行運算调度的最小單位。大部分情况下,它被包含在进程之中,是进程中的實際運作單位。一条线程指的是进程中一个单一顺序的控制流,一個进程中可以並行多個线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。 线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。 同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的(register context),自己的线程本地存储(thread-local storage)。 一个进程可以有很多线程來處理,每条线程并行执行不同的任务。如果进程要完成的任務很多,這樣需很多线程,也要調用很多核心,在多核或多CPU,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见的,即提高了程序的执行吞吐率。以人工作的樣子想像,核心相當於人,人越多則能同時處理的事情越多,而线程相當於手,手越多則工作效率越高。在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,雖然多工比不上多核,但因為具備多线程的能力,从而提高了程序的执行效率。 (zh) |
dbo:thumbnail | wiki-commons:Special:FilePath/Multithreaded_process.svg?width=300 |
dbo:wikiPageID | 45303 (xsd:integer) |
dbo:wikiPageLength | 32555 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1120354363 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Beginthread dbr:Preemption_(computing) dbr:Processor_register dbr:Programmer dbr:Python_(programming_language) dbr:Ruby_MRI dbr:Message_passing dbr:Monitor_(synchronization) dbr:Process.h dbr:Cooperative_multithreading dbc:Threads_(computing) dbr:Pentium_4 dbr:Pentium_D dbr:Unix dbr:User_space dbr:Verilog dbr:Deadlock dbr:Light-weight_process dbr:Priority_inversion dbr:Thread_safety dbr:Spinlock dbr:.NET_Framework dbr:Command_(computing) dbr:Computer_multitasking dbr:Cross-platform dbr:Memory_management dbr:Cilk dbr:Edward_A._Lee dbr:FreeBSD dbr:GNU_C_Library dbr:GNU_Portable_Threads dbr:Glasgow_Haskell_Compiler dbr:Context_switch dbr:Cooperative_multitasking dbr:Coroutine dbr:Critical_section dbr:Process_isolation dbr:Application_programming_interface dbr:Linux dbr:MacOS dbr:Call_stack dbr:State_Threads dbr:Subroutine dbr:Communicating_sequential_processes dbr:Compute_kernel dbr:Computer_programming dbr:Computer_science dbr:Functional_programming dbr:Clone_(Linux_system_call) dbr:Parallel_computing dbr:Process_control_block dbr:Program_counter dbr:Semaphore_(programming) dbr:Thread_pool_pattern dbr:Starvation_(computer_science) dbr:State_(computer_science) dbr:Translation_lookaside_buffer dbr:Win32_Thread_Information_Block dbr:Mutual_exclusion dbr:C++ dbr:CPython dbr:CUDA dbr:C_(programming_language) dbr:Address_space dbc:Concurrent_computing dbr:Data_parallelism dbr:Win32 dbr:Windows_NT dbr:LinuxThreads dbr:Lock_(computer_science) dbr:PM2 dbr:Run_to_completion_scheduling dbr:AMD dbr:DragonFly_BSD dbr:PL/I dbr:POSIX_Threads dbr:Central_processing_unit dbr:Global_interpreter_lock dbr:Global_variable dbr:Handle_(computing) dbr:Lock_convoy dbr:Process_(computing) dbr:Rendezvous_problem dbr:Green_threads dbr:Hardware_description_language dbr:Haskell_(programming_language) dbr:Ateji_PX dbr:Interprocess_communication dbr:Java_(programming_language) dbr:Tcl dbr:Cray_MTA-2 dbr:Hyper-threading dbr:Athlon_64_X2 dbr:Blocking_(computing) dbr:SunOS dbr:High-level_programming_language dbr:Yield_(multithreading) dbr:Solaris_(operating_system) dbr:Fiber_(computer_science) dbr:Data_parallel_computation dbr:IOS dbr:Intel dbr:Inter-process_communication dbr:NetBSD dbr:OS/2 dbr:OS/360_and_successors dbr:OpenCL dbr:OpenMP dbr:Operating_system dbr:Await dbr:Race_condition dbr:Shared_memory_(interprocess_communication) dbr:X86 dbr:Message_Passing_Interface dbr:Multiprocessing dbr:Virtual_machine dbr:Runtime_system dbr:Semantics_(computer_science) dbr:Protothreads dbr:Non-blocking_I/O dbr:Condition_variables dbr:Thread-local_storage dbr:Multi-core dbr:Execution_(computing) dbr:Native_POSIX_Thread_Library dbr:Manycore dbr:Scheduler_activations dbr:Simultaneous_multithreading dbr:Scheduling_(computing) dbr:Non-blocking_algorithm dbr:Symmetric_multiprocessing dbr:Victor_A._Vyssotsky dbr:Resource_(computer_science) dbr:Unix_signals dbr:Computer_storage dbr:Hardware_thread dbr:Synchronization_primitive dbr:Coupling_(computer_science) dbr:Mutex dbr:Concurrent_computation dbr:Context_switching dbr:Multiprocessor dbr:Userspace dbr:Multi-core_(computing) dbr:Multithreading_(computer_hardware) dbr:Preemptive_multithreading dbr:Preemptive_scheduling dbr:File:Concepts-_Program_vs._Process_vs._Thread.jpg dbr:User_threads dbr:File:Multithreaded_process.svg |
dbp:date | June 2020 (en) |
dbp:reason | no kernel modifications are needed (en) |
dbp:wikiPageUsesTemplate | dbt:TOCLIMIT dbt:About dbt:Anchor dbt:Authority_control dbt:Clarify dbt:Div_col dbt:Div_col_end dbt:Expand_section dbt:ISBN dbt:Main dbt:Portal dbt:Refbegin dbt:Refend dbt:Reflist dbt:Short_description dbt:Var dbt:Wikiversity dbt:Operating_system dbt:Parallel_computing |
dct:subject | dbc:Threads_(computing) dbc:Concurrent_computing |
gold:hypernym | dbr:Sequence |
rdf:type | owl:Thing yago:WikicatOperatingSystems yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:OperatingSystem106568134 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Software106566077 |
rdfs:comment | Un thread ou fil (d'exécution) ou tâche (terme et définition normalisés par ISO/CEI 2382-7:2000 ; autres appellations connues : processus léger, fil d'instruction, processus allégé, exétron, voire unité d'exécution ou unité de traitement[réf. nécessaire]) est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle. Toutefois, là où chaque processus possède sa propre mémoire virtuelle, les threads d'un même processus se partagent sa mémoire virtuelle. En revanche, tous les threads possèdent leur propre pile d'exécution. (fr) Un thread o thread di esecuzione, in informatica, è una suddivisione di un processo in due o più filoni (istanze) o sottoprocessi che vengono eseguiti concorrentemente da un sistema di elaborazione monoprocessore (monothreading) o multiprocessore (multithreading) o multicore. (it) In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of threads and processes differs between operating systems, but in most cases a thread is a component of a process. The multiple threads of a given process may be executed concurrently (via multithreading capabilities), sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time. (en) ( 전자 게시판의 종류에 대해서는 스레드 플로트형 게시판 문서를 참고하십시오.) 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (ko) في المعلوماتية والحوسبة، التشعب (بالإنجليزية: Thread) أو سلسلة أو شريط التعليمات (بالإنجليزية: thread of execution) أو التشعبات الحاسوبية (بالإنجليزية: Threads) هو عبارة عن مجموعة من التعليمات التي تشكل مساراً لتنفيذ العملية وبما أنه مجرد مسار فإنه لا يحتاج لموارد خاصة به حيث أنه يستخدم موارد العملية ذاتها. تجعل التشعبات البرنامج الحاسوبي يبدو وكأنه يقوم بأكثر من بشكل متزامن، لكن إذا كانت وحدة المعالجة المركزية بأكثر من نواة فانه يقوم بعمل تزامن حقيقي، فعلى سبيل المثال يمكن للبرنامج الإبقاء على واجهة المستخدم المرئية تتفاعل مع المستخدم على الرغم من قيامه بمهمة أخرى كالاتصال بمخدم. تتميز التشعبات عن بشكل عام في طريقة إنشاء سلسلة التعليمات وطريقة مشاركتها للمصادر وأسلوب تنفيذ المعالج لها بشكل مختلف عن العمليات لكن هذه الفوارق في النهاية تختلف حسب نظام التشغيل. (ar) En informàtica, un fil d'execució (thread en anglès) és la unitat més petita de processament que pot ser programada pels sistemes operatius, i que permet a un procés executar diferents tasques al mateix temps. Cada fil té un procés que ha de ser executat. Aquesta característica dona la possibilitat al programador de dissenyar un programa que executi diferents funcions concurrentment. Els canvis de context es produeixen quan un fil que està al processador és eliminat i entra un altre. Fent canvis de context molt ràpidament donem la sensació de què tots els fils s'executen simultàniament. (ca) Vlákno (též vlákno řízení, anglicky thread) označuje v informatice spuštěnou instanci počítačového programu. O vláknech mluvíme v souvislosti s možností vytvořit více vláken v jednom procesu, což se nazývá multithreading. Jednotlivá vlákna mohou v rámci procesu vykonávat různé činnosti – například čtení požadavků uživatele, zpracování dat, vykreslování výstupu na obrazovce a síťovou komunikaci – nebo stejnou činnost nad různými daty (např. obsluhu více síťových spojení). U počítačů s více procesory nebo na vícejádrových procesorech mohou tyto činnosti probíhat současně (paralelně), v ostatních případech kvaziparalelně (rychlým přepínáním mezi vlákny se vytváří zdání paralelismu). (cs) Στην πληροφορική, ένα νήμα εκτέλεσης (Αγγλικά: thread) είναι η μικρότερη ακολουθία προγραμματισμένων εντολών που μπορεί να υποστεί διαχείριση ανεξάρτητα από το λειτουργικό σύστημα. Ένα νήμα είναι μια ελαφριά διεργασία. Η υλοποίηση των νημάτων και των διεργασιών διαφέρει από το ένα λειτουργικό σύστημα στο άλλο. Στις περισσότερες όμως περιπτώσεις ένα νήμα εμπεριέχεται σε μια διεργασία. Μπορούν να υπάρχουν πολλαπλά νήματα μέσα στην ίδια διεργασία, τα οποία μπορούν να μοιράζονται πόρους από το σύστημα, όπως μνήμη. Διαφορετικές διεργασίες δεν μπορούν να μοιράζονται τους ίδιους πόρους. Συγκεκριμένα, τα νήματα μιας διεργασίας περιέχουν τις εντολές προς την εκτελούμενη διεργασία (δηλαδή τον κώδικα της) και το εννοιολογικό της πλαίσιο (οι τιμές των μεταβλητών της σε οποιαδήποτε χρονική στιγμή. (el) In der Informatik bezeichnet Thread [θɹɛd] (englisch thread, ‚Faden‘, ‚Strang‘) – auch Aktivitätsträger oder leichtgewichtiger Prozess genannt – einen Ausführungsstrang oder eine Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein Thread ist Teil eines Prozesses. Es wird zwischen zwei Arten von Threads unterschieden: 1. * Threads im engeren Sinne, die sogenannten Kernel-Threads, laufen ab unter Steuerung durch das Betriebssystem. 2. * Im Gegensatz dazu stehen die User-Threads, die das Computerprogramm des Anwenders komplett selbst verwalten muss. (de) En sistemas operativos, un hilo o hebra (del inglés thread), proceso ligero o subproceso es una secuencia de tareas encadenadas muy pequeña que puede ser ejecutada por un sistema operativo. La destrucción de los hilos antiguos por los nuevos es una característica que no permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, la situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente. (es) Ulir, utas atau thread (singkatan dari "thread of execution") dalam ilmu komputer, diartikan sebagai sekumpulan perintah (instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). Ulir sebenarnya mirip dengan proses, tetapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda.Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan time-division multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, (in) スレッド(thread)とは、特定の処理を行うための一貫性のある命令の流れのことであり、プロセッサ利用の最小単位。メインメモリ上のデータを内包するプロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドはプロセス内で動作するという関係性がある。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。複数のスレッドを用意することで、並列処理が実現できる(この手法をマルチスレッドプログラミングと呼ぶ)。 (ja) Een thread (draadje) is de kleinste opeenvolging van geprogrammeerde instructies die onafhankelijk van elkaar kunnen worden beheerd door een scheduler. Computers met multitasking kunnen hun tijd zeer snel tussen verschillende taken verdelen. Multiprocessor-computers kunnen ook gelijktijdig taken uitvoeren. Door een grotere taak te verdelen in meerdere threads kunnen sommige taken sneller uitgevoerd worden door de computer. In de meeste besturingssystemen vormen twee proceskenmerken de kern van een proces: * bezit van bronnen * inroosteren (scheduling) en uitvoering (nl) Wątek (ang. thread) – część programu wykonywana współbieżnie w obrębie jednego procesu; w jednym procesie może istnieć wiele wątków. Różnica między zwykłym procesem a wątkiem polega na współdzieleniu przez wszystkie wątki działające w danym procesie przestrzeni adresowej oraz wszystkich innych struktur systemowych (np. listy otwartych plików, gniazd itp.) – z kolei procesy posiadają niezależne zasoby. Ta cecha ma dwie ważne konsekwencje: (pl) Thread (em português: linha ou encadeamento de execução) é uma forma como um processo/tarefa de um programa de computador é divido em duas ou mais tarefas que podem ser executadas concorrentemente ("simultâneo"). O suporte à thread é fornecido pelo sistema operacional no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread, KLT), ou implementada através de uma biblioteca de uma determinada linguagem de programação (User-Level Thread, ULT). Uma thread permite, por exemplo, que o utilizador de um programa utilize uma funcionalidade do ambiente enquanto outras linhas de execução realizam outros cálculos e operações. (pt) Пото́к выполне́ния (тред; от англ. thread — нить) — наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы. Реализация потоков выполнения и процессов в разных операционных системах отличается друг от друга, но в большинстве случаев поток выполнения находится внутри процесса. Несколько потоков выполнения могут существовать в рамках одного и того же процесса и совместно использовать ресурсы, такие как память, тогда как процессы не разделяют этих ресурсов. В частности, потоки выполнения разделяют последовательность инструкций процесса (его код) и его контекст — значения переменных (регистров процессора и стека вызовов), которые они имеют в любой момент времени. (ru) En tråd eller exekveringstråd (engelska: thread) är en av flera parallella instruktionssekvenser inom en programprocess i en dator i många operativsystem. En tråd liknar men ska inte sammanblandas med en process, som kräver mer datorresurser vid uppstart av och växling mellan processer. Varje tråd har en egen instruktionspekare och anropsstack, men delar i regel ett gemensamt adressutrymme med övriga trådar inom processen. (sv) Потік (англ. thread) або повніше потік виконання (англ. thread of execution), часто застосовуються назви нитка, нитка виконання та англіцизм тред — в інформатиці так називається спосіб програми розділити себе на дві чи більше паралельні задачі. Реалізація потоків та процесів відрізняються в різних операційних системах, але загалом потік міститься всередині процесу і різні потоки одного процесу спільно розподіляють деякі ресурси, у той час як різні процеси ресурси не розподіляють. (uk) 线程(英語:thread)是操作系统能夠進行運算调度的最小單位。大部分情况下,它被包含在进程之中,是进程中的實際運作單位。一条线程指的是进程中一个单一顺序的控制流,一個进程中可以並行多個线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。 线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。 同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的(register context),自己的线程本地存储(thread-local storage)。 (zh) |
rdfs:label | تشعب (حوسبة) (ar) Fil d'execució (ca) Vlákno (informatika) (cs) Thread (Informatik) (de) Νήμα (υπολογιστές) (el) Hilo (informática) (es) Utas (komputer) (in) Thread (informatica) (it) Thread (informatique) (fr) スレッド (コンピュータ) (ja) 스레드 (컴퓨팅) (ko) Thread (informatica) (nl) Wątek (informatyka) (pl) Thread (computação) (pt) Поток выполнения (ru) Thread (computing) (en) Tråd (datavetenskap) (sv) 线程 (zh) Потік (інформатика) (uk) |
owl:sameAs | freebase:Thread (computing) freebase:Thread (computing) yago-res:Thread (computing) http://d-nb.info/gnd/4377482-9 wikidata:Thread (computing) dbpedia-af:Thread (computing) dbpedia-ar:Thread (computing) dbpedia-ca:Thread (computing) dbpedia-cs:Thread (computing) dbpedia-da:Thread (computing) dbpedia-de:Thread (computing) dbpedia-el:Thread (computing) dbpedia-es:Thread (computing) dbpedia-et:Thread (computing) dbpedia-fa:Thread (computing) dbpedia-fr:Thread (computing) dbpedia-he:Thread (computing) dbpedia-hu:Thread (computing) http://ia.dbpedia.org/resource/Filo_(informatica) dbpedia-id:Thread (computing) dbpedia-is:Thread (computing) dbpedia-it:Thread (computing) dbpedia-ja:Thread (computing) dbpedia-ko:Thread (computing) http://ml.dbpedia.org/resource/ത്രെഡ്ഡിങ് http://mn.dbpedia.org/resource/Thread dbpedia-nl:Thread (computing) dbpedia-no:Thread (computing) dbpedia-pl:Thread (computing) dbpedia-pt:Thread (computing) dbpedia-ro:Thread (computing) dbpedia-ru:Thread (computing) dbpedia-simple:Thread (computing) dbpedia-sk:Thread (computing) dbpedia-sq:Thread (computing) dbpedia-sr:Thread (computing) dbpedia-sv:Thread (computing) dbpedia-th:Thread (computing) dbpedia-tr:Thread (computing) dbpedia-uk:Thread (computing) dbpedia-vi:Thread (computing) dbpedia-zh:Thread (computing) https://global.dbpedia.org/id/22LtQ |
prov:wasDerivedFrom | wikipedia-en:Thread_(computing)?oldid=1120354363&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/Multithreaded_process.svg wiki-commons:Special:FilePath/Concepts-_Program_vs._Process_vs._Thread.jpg |
foaf:isPrimaryTopicOf | wikipedia-en:Thread_(computing) |
is dbo:wikiPageDisambiguates of | dbr:Thread |
is dbo:wikiPageRedirects of | dbr:Multithreading_(software) dbr:Kernel_thread dbr:Thread(OS) dbr:Thread(computer_science) dbr:Thread(computing) dbr:Multi-threaded_programming dbr:Program_thread dbr:Single-thread dbr:Single-threaded dbr:Single-threading dbr:Single-threads dbr:Single_thread dbr:Single_threaded dbr:Single_threading dbr:Single_threads dbr:Software_thread dbr:Thread_(Computing) dbr:Thread_(computer_programming) dbr:Thread_(computer_science) dbr:Thread_(software_engineering) dbr:Thread_join dbr:Thread_management dbr:Thread_of_execution dbr:Threads_(computer_science) dbr:User_thread dbr:CPU_allocation dbr:Current_running_thread dbr:Execution_abstraction dbr:Execution_thread dbr:Multi-threaded dbr:Multithreaded_programming |
is dbo:wikiPageWikiLink of | dbr:Cascade_Lake_(microprocessor) dbr:Amdahl's_law dbr:Protection_ring dbr:Qt_(software) dbr:Rocket_Lake dbr:Rsync dbr:Sandy_Bridge dbr:Message_passing dbr:Monitor_(synchronization) dbr:Multithreading_(software) dbr:Memory_barrier dbr:Message_loop_in_Microsoft_Windows dbr:OpenSPARC dbr:Privatization_(computer_programming) dbr:Kernel_thread dbr:UltraSPARC_T1 dbr:Blend4Web dbr:Blitz_BASIC dbr:Deep_learning_super_sampling dbr:Alias_analysis dbr:Architecture_of_Windows_NT dbr:Join-pattern dbr:Julia_(programming_language) dbr:List_of_IOMMU-supporting_hardware dbr:Lites dbr:PeaZip dbr:Reo_Coordination_Language dbr:RoadRunner_(application_server) dbr:DOPIPE dbr:Upload_components dbr:V850 dbr:VP9 dbr:Vala_(programming_language) dbr:VisualVM dbr:Visual_Studio dbr:Volatile_(computer_programming) dbr:Von_Neumann_programming_languages dbr:Deadlock dbr:EAServer dbr:EEMBC dbr:ERuby dbr:Intel_Tera-Scale dbr:Internet_forum dbr:Processor_affinity dbr:Libumem dbr:Light-weight_process dbr:Nyotron dbr:Thread_safety dbr:Pthreads dbr:Spinlock dbr:Thread(OS) dbr:Thread(computer_science) dbr:Thread(computing) dbr:.NET_Framework dbr:Comet_Lake dbr:Comparison_of_C_Sharp_and_Java dbr:Comparison_of_open-source_operating_systems dbr:Compatibility_of_C_and_C++ dbr:Computer_multitasking dbr:Concurrent_ML dbr:Concurrent_computing dbr:Core_dump dbr:CrystalDiskMark dbr:Ryzen dbr:Sagan_(software) dbr:NOVA_(filesystem) dbr:Object_Manager_(Windows) dbr:Task_parallelism dbr:Shared_snapshot_objects dbr:RDRAND dbr:Cisco_IOS dbr:Coffee_Lake dbr:FreeBSD dbr:FreeRTOS dbr:Fuzzing dbr:GNU_Portable_Threads dbr:Game_engine dbr:Geant4 dbr:Godot_(game_engine) dbr:Google_Daydream dbr:Graphics_Core_Next dbr:Monte_Carlo_tree_search dbr:Concurrency_(computer_science) dbr:Concurrency_and_Coordination_Runtime dbr:Concurrent_Haskell dbr:Concurrent_hash_table dbr:Concurrent_object-oriented_programming dbr:Context_switch dbr:Continuation dbr:Control_unit dbr:Coroutine dbr:Socket_AM1 dbr:ApacheBench dbr:Apache_HTTP_Server dbr:Apache_Storm dbr:Appserver.io dbr:Librsb dbr:Libuv dbr:Linux_kernel dbr:Lisa_Su dbr:LispWorks dbr:List_of_AMD_Athlon_II_processors dbr:List_of_AMD_Athlon_processors dbr:List_of_AMD_accelerated_processing_units dbr:LynxOS dbr:Lyra2 dbr:MDL_(programming_language) dbr:MIMEDefang dbr:Mac_OS_8 dbr:Mac_OS_X_Snow_Leopard dbr:Maggie_(library) dbr:Call-with-current-continuation dbr:Simple_DirectMedia_Layer dbr:Simple_and_Fast_Multimedia_Library dbr:Skylake_(microarchitecture) dbr:Computer_engineering_compendium dbr:Embedded_HTTP_server dbr:Features_new_to_Windows_7 dbr:FeiTeng_(processor) dbr:Microarchitecture dbr:Parallel_computing dbr:Piledriver_(microarchitecture) dbr:Pool_(computer_science) dbr:Power_Processing_Element dbr:Program_counter dbr:Swing_(Java) dbr:Synchronization dbr:Task_(computing) dbr:Task_Control_Block dbr:Thread_control_block dbr:Microkernel dbr:Mutual_exclusion dbr:AviSynth dbr:Broadwell_(microarchitecture) dbr:CPython dbr:Active_object dbr:ThreadWeaver dbr:ThreadX dbr:Threading_Building_Blocks dbr:Titan_(supercomputer) dbr:Twisted_(software) dbr:WebAssembly dbr:Web_server dbr:Web_worker dbr:Windows_10 dbr:Windows_NT dbr:Windows_NT_3.1 dbr:Distributed_networking dbr:Distributed_operating_system dbr:Garbage-first_collector dbr:Garbage_collection_(computer_science) dbr:Latency_oriented_processor_architecture dbr:Linked_data_structure dbr:List_of_AMD_FX_processors dbr:Zero-copy dbr:A2_(operating_system) dbr:AOLserver dbr:AV1 dbr:ActiveVFP dbr:Adaptive_Server_Enterprise dbr:Adobe_PageMaker dbr:Data_General_RDOS dbr:DragonFly_BSD dbr:ECos dbr:EKA1 dbr:EKA2 dbr:Erlang_(programming_language) dbr:Features_new_to_Windows_10 dbr:Fermi_(microarchitecture) dbr:Fetch-and-add dbr:Framewave dbr:Bartok_(compiler) dbr:Node.js dbr:Nuclear_computation dbr:PL/I dbr:PMView dbr:POSIX dbr:ParaSail_(programming_language) dbr:Central_processing_unit dbr:Direct_kernel_object_manipulation dbr:Discrete-event_simulation dbr:Fork–join_model dbr:Glossary_of_operating_systems_terms dbr:Goldmont dbr:Hang_(computing) dbr:History_monoid dbr:Machine_code dbr:List_of_Intel_processors dbr:Process_(computing) dbr:Pure_function dbr:Quark_(kernel) dbr:QuickDraw dbr:Read-copy-update dbr:Greg_Nelson_(computer_scientist) dbr:Hamilton_C_shell dbr:Astrée_(static_analysis) dbr:Asynchrony_(computer_programming) dbr:Ivy_Bridge_(microarchitecture) dbr:Jakarta_Connectors dbr:JavaScript dbr:Java_(programming_language) dbr:Timer_coalescing dbr:Athlon_64_X2 dbr:AMD_10h dbr:ANSI_C dbr:ARM_big.LITTLE dbr:ARX_(operating_system) dbr:Access_token dbr:ChibiOS/RT dbr:Jikes_RVM dbr:Kaby_Lake dbr:L4_microkernel_family dbr:Swedish_Institute_of_Computer_Science dbr:System_Contention_Scope dbr:Java_concurrency dbr:Thread dbr:Threading dbr:Trace_monoid dbr:Yield_(multithreading) dbr:MockServer dbr:Vector_Fabrics,_B.V. dbr:Real_time_Java dbr:DioneOS dbr:DiskSpd dbr:Dlib dbr:Bulldozer_(microarchitecture) dbr:CPU_time dbr:Plan_9_from_Bell_Labs dbr:Speculative_multithreading dbr:Spinning_pinwheel dbr:FreeBSD_version_history dbr:Green_thread dbr:Id_Tech_7 dbr:Instruction-level_parallelism dbr:Integrated_Performance_Primitives dbr:Intel_8051 dbr:Intel_Core dbr:Kristen_Nygaard dbr:Apartment_(disambiguation) dbr:Mesa_(programming_language) dbr:Micro-Controller_Operating_Systems dbr:Microsoft-specific_exception_handling_mechanisms dbr:Microsoft_Windows_library_files dbr:OS/360_and_successors dbr:OSF/1 dbr:Obliq dbr:OpenGL_Utility_Toolkit dbr:OpenLisp dbr:OpenVMS dbr:Orfeo_toolbox dbr:RIOT_(operating_system) dbr:RISC-V dbr:RMX_(operating_system) dbr:RPCS3 dbr:Race_condition dbr:Raptor_Lake dbr:Rclone dbr:React_Native dbr:Reactive_Streams dbr:Reentrant_mutex dbr:SequenceL dbr:X86 dbr:XCB dbr:Xorshift dbr:Yate_(telephony_engine) dbr:OpenBinder dbr:System_call dbr:Loop-level_parallelism dbr:Map_(parallel_pattern) dbr:Message_queue dbr:Rodos_(operating_system) dbr:Runtime_system dbr:Single_instruction,_multiple_threads dbr:System_on_a_chip dbr:SCOOP_(software) dbr:Wait_(system_call) dbr:Write_once,_run_anywhere dbr:VISC_architecture dbr:Gustafson's_law dbr:KLT dbr:Thread-local_storage dbr:POWER5 dbr:Testing_high-performance_computing_applications dbr:Runtime_predictive_analysis dbr:Multi-threaded_programming dbr:Thread_block_(CUDA_programming) dbr:Event_dispatching_thread dbr:Event_loop dbr:Evolving_digital_ecological_network dbr:Execution_(computing) dbr:Native_POSIX_Thread_Library dbr:Xeon dbr:TCEC_Season_15 dbr:TCEC_Season_17 dbr:TCEC_Season_18 dbr:Scheduling_(computing) dbr:Single_instruction,_multiple_data dbr:Standard_Libraries_(CLI) dbr:Video_game_programming dbr:Non-blocking_algorithm |
is foaf:primaryTopic of | wikipedia-en:Thread_(computing) |