C# Threading. Obliczenia Równoległe i Systemy Rozproszone Kryspin Mirota,
|
|
- Sebastian Czerwiński
- 6 lat temu
- Przeglądów:
Transkrypt
1 Systemy operacyjne pochodzące z firmy Microsoft, z założenia i od początku, ukierunkowane były raczej na rynek komputerów osobistych. Zatem celem nadrzędnym nie było osiąganie oszałamiających mocy obliczeniowych czy niezawodności, ale łatwości obsługi i konserwacji, przy równocześnie minimalnych kosztach. Tak też skuteczne rozwiązania z zakresu współbieżności, które w obrębie ` Portable Operating System Interface wprowadzono już w POSIX.1b Real-time extensions(ieee Std b-1993) odnośnie wieloprocesowaści a wielowątkowości POSIX.1c Threads extensions (IEEE Std c-1995) nie wzbudziły - w tej, czy jakiejkolwiek innej formie - większego zainteresowania ze strony Microsoft. Nie można się temu dziwić, bowiem ukierunkowanie jest, a raczej było, tu całkowicie odmienne. Co prawda pewien niewielki wyłom - w tym zakresie stanowiła rodzina systemów WINDOWS SERVER NT nie mniej w dość ograniczonym zakresie.
2 Z czasem jednak pojawiły się zupełnie inne i całkowicie nowe okoliczności wynikające z fizycznych barier podnoszenia wydajności platformy hardware'owej komputerów PC (w szczególności procesorów). O ile osiągalne jest podniesienie wydajności procesora o tradycyjnej architekturze single-core do około 8.0 GHz GH (aktualny rekord 8.2 GHz), GHz to jest to praktycznie trudne do zrealizowania. W szczególności wymagałoby chłodzenie przy pomocy ciekłego azotu. Intel Pentium 4 Extreme Edition w 2008 rok 3.75 GHz Dla praktycznych rozwiązań komercyjnych barierą jest około GHz Stąd i sięgnięto po architekturę typu milti-core. milti-core Intel: od 2006 do dzisiaj.
3 Uboczną ale, w gruncie rzeczy, naturalną konsekwencją zwrócenia się producentów komputerów osobistych ku architekturze multi-core, multi-core stało się zainteresowanie rozwiązaniami z zakresu oprogramowania współbieżnego. Póki co dominujący na rynku komputerów PC system operacyjny MsWindows wspiera współbieżność od niedawana i w ograniczonym zakresie. Aktualnie problem współbieżności rozwiązano skutecznie na poziomie wątków, aczkolwiek prowadzone są - wg doniesień Microsoft - bardzo intensywne prace rozwojowe w tym zakresie. Tak też należy się podziewać bardzo dużego postępu w tym zakresie. Niezależnie od wsparcia API systemowego kwestię otwartą stanowi wybór narzędzia, w postaci języka programowania. Aktualne koncepcje w zakresie rozwoju oprogramowania użytkowego dla systemu MsWindows, MsWindows jakie prezentuje firma Microsoft uznają jako najbardziej perspektywiczne języki Common Intermediate Language (CIL) a więc kodu wykonywanego w środowisku uruchomieniowym.net Framework
4 C# jest obiektowym językiem programowania, opracowany został w firmie Microsoft pod koniec lat dziewięćdziesiątych, w zespole kierowanym przez Anders Hejlsberg a (wielce zasłużonego dla powstanie IDE i języka Turbo Pascal a później Delphi w firmie Borland). Borland Samo oznaczenie # zaczerpnięte zostało z notacji muzycznej i symbolu krzyżyka # określającego ton o połowę wyższy w tym przypadku C byłby to dźwięk Cis. Cis O ile wywodzi się, podobnie jak C++, C++ stanowiąc jego nadzbiór to wprowadza bardzo wiele elementów i koncepcji języka JAVA. JAVA Wyraźnie daje się to zauważyć już w samej strukturze kodu a tym bardziej sposobu generowania wynikowego kodu uruchomieniowego oraz jego wykonania. VER Data.NET FRAMEWORK Visual Stidio 1.0 styczeń Rainier luty październik Everett kwiecień wrzesień Whidbey wrzesień sierpień Orcas listopad kwiecień Rosario kwiecień 2010
5 Jak przedstawia to załączony obok schemat powstawania i wykonania aplikacji C# (zaczerpnięty w materiałów źródłowych firmy Microsoft), Microsoft mamy tu fazy: ➊ Kod źródłowy, transformowany jest przez kompilator (MsVisual C#, C# jest to csc.exe), csc.exe do postaci Common Intermediate Language (CLI) CLI stanowiący swoistą analogię assemblera. ➋ Kod CLI, CLI nazywany pierwotnie przez twórców C# Microsoft Intermediate Language (MSIL), MSIL konsolidowany jest z zasobami resource jak chociażby ikony a także informacjami opisującymi konfigurację (jak wersja, język, bezpieczeństwo) ogólnie nazywane manifest w końcu - zapisywany jest formie binarnej jako *.EXE. *.EXE ➌ W momencie kiedy pojawia się polecenie jego uruchomienia jest przekazywany maszynie wirtualnej CLR, CLR która sprawdza nagłówek i jeżeli spełnione są określone w nim wymogi, przekazuje kompilacji Just In Time (JIT) JIT kodu CLI aplikacji, tworząc w ten sposób natywny, wykonywany kod binarny (właściwy danej platformie sprzętowej i systemowej).
6 Kod CLI uzyskany po kompilacji, podobnie jak kod źródłowy można swobodnie przeglądać. Umożliwia to program IL Disassembler (x64) dostępny pod zakładką Microsoft Visual Studio 2010>Microsoft Windows SDK Tools Weźmy najprostszy program C#, C# który wypisuje komunikat Hello World! na konsoli. Sam program przedstawiać się może następująco using System; class Program static void Main() Console.WriteLine("Hello World!"); Kompilacja z konsuli (po uruchomianiu Visual Studio x64 Win64 Command Prompt (2010)) (2010) D:\.>csc.exe hello.cs Microsoft (R) Visual C# 2010 Compiler version Copyright (C) Microsoft Corporation. All rights reserved.
7 O ile nie wystąpił żaden błąd kompilacji, to uruchomienie - zatem przekazanie środowisku uruchomieniowemu maszyny wirtualnej.net D:\.>hello.exe Hello World! Gdyby otworzyć skompilowany kod CLI, CLI w IL Disassembler
8 Ilekroć uruchamiamy aplikację, to system dokonuje na jej rzecz przydziału zasobów w tym pamięci. Choć zwykle jest to jeden, to generalnie aplikacja może powołać do życie wiele procesów - każdy z nich jednak otrzyma własne zasoby, odrębne od innych procesów i chronione przez system, na jego rzecz, zasoby. Listę aktywnych procesów i ich ogólną charakterystykę można łatwo pozyskać w systemie MsWindows uruchamiając Task Manager, Manager czyli Manager Zadań. Zadań
9 Dużo większe możliwości z zakresu monitorowania stanu procesów daje aplikacja menadżera zasobów (dostępna od pewnego czasu jego systemowe narzędzie administracyjne). Zauważmy, że oprócz nazwy mamy tutaj także PID, informacje o stanie i wykorzystywanych zasobach.
10 Każdy proces, w obrębie przydzielonych mu przez system zasobów, może powołać wątek. Informację o wątkach związanych z każdym procesem można także wyświetlić przez Task Manager, wybierając z jego menu głównego Widok> Wybierz kolumny... wówczas wyświetli się dodatkowe okno pozwalające wybrać dodatkowe informacje o procesach. Zobaczymy wówczas - przykładowo - że proces firefox.exe powołał 27 wątków, zaś występujący na 3 pozycji listy winamp.exe 26 wątków.
11 O ile możliwość użycia wątków przez proces nie jest czyś generalnie nowym dla tego środowiska, co jest spostrzeżeniem oczywistym, to C# i środowisko.net Framework oferuje wobec nic całkowicie nową jakość. Zawiera, czy powiela, standardowe elementy znane już znacznie wcześniej ze standardu POSIX, POSIX wprowadza jednak dla wątków reprezentację obiektową. Przetwarzanie wielowątkowe zawsze będzie skuteczniejsze od sekwencyjnego, jeżeli dotyczyć będzie rozległych zestawów danych, stosunkowo jednorodnych. Dodatkowo, a może tym bardziej, że: wątki mogą być uruchamiane w tle, całkowicie bez angażowania użytkownika jeżeli proces nadrzędny będzie wymagał dostępu do danych, kiedy czas jest duży - wątek lub wątki działające w tle mogą znacznie ograniczyć wpływ tej niedogodności. Co oczywiste dodatkowy wątki pochłaniają dodatkowe zasoby, zarządzanie nimi pochłania dodatkowy czas jednak jak zaleca to aktualnie twórca systemu...that you use as few s as possible in your applications.
12 .Net Framework oferuje celem zarządzania wątkami udostępnia przestrzeń nazw System.Threading obejmującą: klasy: klasy AbandonedMutexException AutoResetEvent Barrier BarrierPostPhaseException CancellationTokenSource CompressedStack CountdownEvent EventWaitHandle ExecutionContext HostExecutionContext HostExecutionContextManager Interlocked LazyInitializer LockRecursionException ManualResetEvent ManualResetEventSlim Monitor Mutex Overlapped ReaderWriterLock ReaderWriterLockSlim RegisteredWaitHandle Semaphore SemaphoreFullException SemaphoreSlim SynchronizationContext SynchronizationLockException Thread ThreadAbortException ThreadExceptionEventArgs ThreadInterruptedException ThreadLocal(Of T) ThreadPool ThreadStartException ThreadStateException Timeout Timer WaitHandle WaitHandleCannotBeOpenedException struktury: struktury AsyncFlowControl CancellationToken CancellationTokenRegistration LockCookie NativeOverlapped SpinLock SpinWait delegacje: delegacje ContextCallback IOCompletionCallback ParameterizedThreadStart SendOrPostCallback ThreadExceptionEventHandler ThreadStart TimerCallback WaitCallback WaitOrTimerCallback wyliczenia: wyliczenia ApartmentState EventResetMode LazyThreadSafetyMode LockRecursionPolicy ThreadPriority ThreadState
13 W sposób bezpośredni, tworzeniu i zarządzaniu wątkami służy klasa Thread. Thread Za nim wątek będzie mógł być użyty należy najpierw zdefiniować stosowny obiekt tej klasy. Odbywa się to w tradycyjny sposób, zaś funkcja wątku podawana jest za pośrednictwem konstruktora Thread(). Thread() Utwórzmy z wątku głównego procesu jeden wątek potomny o nazwie. Pierwszy będzie wypisywał na konsoli znaki 'x' zaś drugi (potomny) 'o'. 'o' using System; using System.Threading; //...konieczne włącznie przestrzeni nazw wątków namespace Thread class Program const int loops = 100; //...krotność wykonania static void Main( string[] args ) //...definicja obiektu typu wątek (Thread), z funkcją wątku o() System.Threading.Thread = new System.Threading.Thread( o ); //...uruchomienie wątku.start(); //...działanie własne wątku procesu głównego for (int i = 0; i < loops; i++) Console.Write("x");
14 Oczywiście pozostaje jeszcze zdefiniować funkcję wątku. static void o() for (int i = 0; i < loops; i++) Console.Write("o"); Kompilacja D:\.>csc.exe oxo.cs Microsoft (R) Visual C# 2010 Compiler version Copyright (C) Microsoft Corporation. All rights reserved. i uruchomienie D:\.>oxo.exe xxxxxxxxoooooooooooooooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooo Co oczywiste nie ma tu żadnej synchronizacji między obiema wątkami a chronologia czasowa ich koegzystencji jest mniej lub bardziej przypadkowa.
15 Warto jeszcze, na wstępie zauważyć, że podobnie jak w POSIX wątek otrzymuje swój unikalny identyfikator ale - ponieważ jest to zmienna obiektowa - także i szeregu innych atrybutów. Przykładowo można mu nadać nazwę Name. Name using System; using System.Threading; namespace Thread class Program static void Main(string[] args) //...nazwa dla wątku procesu głównego System.Threading.Thread.CurrentThread.Name = "MASTER"; //...inicjowanie obiektu Thread System.Threading.Thread = new System.Threading.Thread( go );.Name = "SLAVE";.Start(); //...i jeszcze działanie dla głównego - niech także wykona funkcję wątku go(); //...funkcję wątku wykonują oba, choć z różnym rezulatem. static void go() Console.WriteLine("Hello from 0",System.Threading.Thread.CurrentThread.Name);
16 Zapisując kod źródłowy pod nazwą name.cs, name.cs po kompilacji i uruchomieniu uzyskujemy na konsoli D:\.>name.exe Hello from MASTER Hello from SLAVE Tworząc nowy wątek bezpiecznie będzie sprawdzić, czy znajduje się już w stanie wykonania. Służy temu własność public bool System.Threading.Thread.IsAl IsAlive get; Wykonanie dowolnego wątku można wstrzymać na czas określony w milisekundach, metodą public static void System.Threading.Thread.Sleep( int millisecondstimeout ); Oczywiście można napisać także - przykładowo Thread.Sleep (TimeSpan.FromHours (1) ); co przyniesie wstrzymanie na 1 godzinę Wątkowi można polecić natychmiastowe zatrzymanie public void System.Threading.Thread.Abort(); które generuje ThreadAbortException. ThreadAbortException Przygotujemy teraz kolejny przykład, w którym: utworzymy wątek potomny, który na konsoli będzie sygnalizował aktywność wypisując '.' zatrzymamy wątek procesu głównego na 2000 milisekund po tym czasie nakażemy wątkowi przerwanie działania w funkcji wątku dodamy obsługę zdarzeń try catch finalize
17 using System; using System.Threading; class Program static void Main(string[] args) System.Threading.Thread = new System.Threading.Thread( work );.Start(); while (!.IsAlive); Thread.Sleep( 2000 );.Abort(); static void work() try Console.Write( "[ start]" ); while( true ) Console.Write( "." ); catch (Exception error) Console.WriteLine( "[ stop]" ); //Console.WriteLine( "...catched exception 0",error.ToString() ); finally Console.WriteLine( "[work done]" );
18 Jeżeli kod źródłowy zapiszemy pod nazwą stop.cs, stop.cs to jego kompilacja D:\.>csc.exe stop.cs Microsoft (R) Visual C# Copyright (C) Microsoft stop.cs(24,20): warning 2010 Compiler version Corporation. All rights reserved. CS0168: The variable 'error' is declared but never used tutaj oczywiście pojawia się ostrzeżenie odnośnie zmiennej error. error Wykonanie programu D:\.>stop.exe [ start] [ stop] [work done]
19 Gdyby usunąć komentarz z metody work, work czyli byłoby static void work() try Console.Write( "[ start]" ); while( true ) Console.Write( "." ); catch (Exception error) Console.WriteLine( "[ stop]" ); Console.WriteLine( "...catched exception 0",error.ToString() ); finally Console.WriteLine( "[work done]" ); to otrzymalibyśmy w miarę precyzyjne informacje o przyczynie i warunkach zakończenia [ stop]...catched exception System.Threading.ThreadAbortException: Thread was being aborted. at System.IO. ConsoleStream.WriteFile(SafeFileHandle handle, Byte* bytes, Int32 numbytestowrite, Int32& numbyteswrit ten, IntPtr mustbezero) at System.IO. ConsoleStream.WriteFileNative(SafeFileHandle hfile, Byte[] bytes, Int32 offset, Int32 count, Int32 mus tbezero, Int32& errorcode) at System.IO. ConsoleStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.IO.StreamWriter.Flush(Boolean flushstream, Boolean flushencoder) at System.IO.TextWriter.SyncTextWriter.Write(String value) at Program.work() [work done]
20 Prócz wymienionych a właściwie ponad nie, bo jest to zasadniczy sposób jaki należy użyć celem synchronizacji jest metoda public void System.Threading.Thread.Join(); W kolejnym przykładzie wątek procesu głównego będzie tak długo kontynuował swe działanie do póki potomny nie zakończy. using System; using System.Threading; class Program static void Main(string[] args) System.Threading.Thread = new System.Threading.Thread( work );.Start(); while(.isalive ) Console.Write( "." );.Join(); static void work() Console.Write( "[ start]" ); Thread.Sleep( 100 ); Console.WriteLine( "[ stop]" );
21 Efekt wykonania przedstawia się następująco zwróćmy uwagę na D:\.>join.exe fragmenty...[ start] [ stop]. Nic nie stoi na przeszkodzie aby Join() dotyczyło wielu wątków, czyli static void Main(string[] args) Thread[] = new Thread[10]; for (int ID = 0; ID <.Length; ID++) [ID] = new System.Threading.Thread(work); [ID].Name = ID.ToString(); [ID].Start(); for (int ID = 0; ID <.Length; ID++) [ID].Join(); static void work() Console.WriteLine("0", Thread.CurrentThread.Name);
22 Podstawowym narzędziem synchronizacyjnym C# jest obiekt System.Threading.Monitor; Jego ogólny schemat użycia przedstawia się jako Monitor.Enter( locked ); try //...kod sekcji krytycznej finally //...protokół wyjścia Monitor.Exit( locked ); Równoważne wobec tych wywołań jest użycie słowa kluczowego lock, jako lock( locked ) //...kod sekcji krytycznej
23 Weźmy jako przykład using System; using System.Threading; class Job public Job() /* czyli konstruktor domyślny */ public void work() for (int i = 0; i < 5; i++) Console.Write("0-1 ", Thread.CurrentThread.Name, i); Console.WriteLine(); class Program static void Main(string[] args) Thread[] = new Thread[10]; Job job = new Job(); for (int ID = 0; ID <.Length; ID++) [ID] = new Thread( new ThreadStart( job.work ) ); [ID].Name = ID.ToString(); foreach (Thread t in ) t.start(); foreach (Thread t in ) t.join();
24 Wprowadzając zaś wzajemne wykluczanie... using System; using System.Threading; class Job public Job() /* czyli konstruktor domyślny */ public void work() lock (this) for (int i = 0; i < 5; i++) Console.Write("0-1 ", Thread.CurrentThread.Name, i); Console.WriteLine(); class Program static void Main(string[] args) Thread[] = new Thread[10]; Job job = new Job(); for (int ID = 0; ID <.Length; ID++) [ID] = new Thread( new ThreadStart( job.work ) ); [ID].Name = ID.ToString(); foreach (Thread t in ) t.start(); foreach (Thread t in ) t.join();
25 Porównajmy teraz efekty wykonania obu programów. W drugim przypadku (z wykluczaniem) W pierwszym przypadku (bez wykluczania) Zaznaczono sekwencję wykonania wątku Jak wspomniano wcześniej - identyczny efekt można uzyskać wprowadzając obiekt Monitor, Monitor czyli re-definiując metodą work() klasy Job public void work() Monitor.Enter(this); try for (int i = 0; i < 5; i++) Console.Write("0-1 ", Thread.CurrentThread.Name, i); Console.WriteLine(); finally Monitor.Exit(this);
26 Innym sposobem ochrony zasobów współdzielonych jest użycie obiektu System.Threading.Mutex Obiekt ten wyposażony jest w zestaw konstruktorów, z czego najczęściej używanym jest domyślny public Mutex() oraz dwie zgłaszające żądanie dostępu do zasobu współdzielonego oraz zwalniające ten zasób public virtual bool WaitOne() public void ReleaseMutex() Ogólną zasadą użycia obiektu Mutex można przedstawić na przykładzie poniższego kodu. using System; using System.Threading; class Program private static Mutex mutex = new Mutex(); //...definiujemy obiekt Mutex static void Main() for (int ID = 0; ID < 5; ID++) //...tworzymy 5 wątków potomnych // funkcją wątku będzie Go() Thread = new Thread( new ThreadStart( Go ) );.Name = ID.ToString();.Start();
27 W funkcji wątku wykonamy 3 cykle dostępu do zasobu współdzielonego (chronionego obiektem mutex). mutex private static void Go() for (int cycle = 0; cycle < 3; cycle++) Use(); Działania wobec zasobu chronionego symuluje funkcja (metoda) private static void Use() mutex.waitone(); //...czyli żądanie dostępu Console.WriteLine(" 0...use shared resource", Thread.CurrentThread.Name); //...sekcja krytyczna, początek Thread.Sleep(100); //...sekcja krytyczna, koniec mutex.releasemutex(); //...zwolnienie zasobu Kończy to kod programu. Pozostaje skompilować i uruchomić.
28 Efekt wykonanie przedstawia się następująco 0...use 0...use 4...use 4...use 1...use 3...use 1...use 0...use 2...use 4...use 1...use 3...use 2...use 2...use 3...use shared shared shared shared shared shared shared shared shared shared shared shared shared shared shared resource resource resource resource resource resource resource resource resource resource resource resource resource resource resource czyli tak jak należałoby oczekiwać. Zwróćmy tu jeszcze raz uwagę na sekwencję wykonania - przykładowo zaznaczono wątek ostatni o ID 5. 5
29 Weźmy teraz typowy przykład wyścigu w dostępie do zmiennej współdzielonej. Tutaj będzie to zmienna całkowita N, której nadamy wartość początkową 0 a każdy z wątków zwiększy ją o 1. using System; using System.Threading; class Program private static Mutex mutex = new Mutex(); private static int N = 0; static void Main() Thread[] = new Thread[5]; for (int ID = 0; ID <.Length; ID++) [ID] = new Thread(new ThreadStart( Inc )); [ID].Name = ID.ToString(); foreach (Thread t in ) t.start(); foreach (Thread t in ) t.join(); Console.WriteLine("N = 0", N); //...tutaj powinna się znaleźć funkcja wątku Inc()
30 Funkcja wątku, nich przedstawia się następująco (na wstępie pozostawmy komentarze przy wywołaniach mutex) private static void Inc() int n; //mutex.waitone(); n = N; Console.WriteLine(" 0 take N=1", Thread.CurrentThread.Name, n); n = n + 1; N = n; Console.WriteLine(" 0 send N=1", Thread.CurrentThread.Name, n); //mutex.releasemutex(); Z racji istnienia wyścigu i braku synchronizacji między pobraniem wartości N a przypisaniem własnego wyniku, efekt N = take send take take send send take take send send N=0 N=1 N=0 N=1 N=2 N=1 N=0 N=1 N=2 N=1... no i wynik całkowicie błędny (jak można by oczekiwać).
31 Gdyby wprowadzić ochronę sekcji krytycznej obiektem Mutex, czyli private static void Inc() int n; mutex.waitone(); n = N; Console.WriteLine(" 0 take N=1", Thread.CurrentThread.Name, n); n = n + 1; N = n; Console.WriteLine(" 0 send N=1", Thread.CurrentThread.Name, n); mutex.releasemutex(); to uzyskamy wynik w pełni poprawny N = take send take send take send take send take send N=0 N=1 N=1 N=2 N=2 N=3 N=3 N=4 N=4 N=5
32 Aktualne rozwiązanie problemu współbieżności w C# w obrębie System.Threading cechuje się dużą wszechstronności i omówiono tylko niewielki jej fragment. Właściwie mógłby to być temat dla osobnych zajęć. Warto pamiętać o witrynie MSDN Równocześnie charakteryzuje się aktualnie bardzo dużą dynamiką i ma jeszcze szereg cech znamiennych wczesnego stadium. Na koniec przedstawimy jeszcze podsumowanie odnośnie orientacyjnej efektywności poszczególnych metod ochrony sekcji krytycznej, czyli: lock (Mutex.Enter()/ Mutex.Enter() Mutex.Exit()) Mutex.Exit( i Mutex, Mutex czyli semafory binarne Semaphore, Semaphore tradycyjny semafor licznikowy ReaderWriterLock a więc semafor dedykowany obsłudze problemu czytelników i pisarzy, a dwa ostatnie maję jeszcze warianty Slim. Slim 100, , ,00 2,00 0 lock/monitor Mutex Semaphore SemaphoreSlim 10,00 4,00 ReaderWriterLockSlim ReaderWriterLock
Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.
Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)
MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis
MATERIAŁY DO ZAJĘĆ I Podstawowe pojęcia Spis treści I. Algorytm II. Schemat blokowy III. Struktury danych IV. Program komputerowy V. Opis środowiska programistycznego VI. Obsługa wejścia wyjścia VII. Przykład
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Microsoft IT Academy kurs programowania
Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Programowanie wielowątkowe. Jarosław Kuchta
Programowanie wielowątkowe Jarosław Kuchta Procesy i wątki w systemie Windows Windows jest systemem wielowątkowym. Każdy proces ma przynajmniej jeden wątek, chociaż może mieć wiele wątków. Start programu,
Aplikacje w Javie- wykład 11 Wątki-podstawy
1 Aplikacje w Javie- wykład 11 Wątki-podstawy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ http://docs.oracle.com/javase/9/docs/
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski
Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty
Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1
Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego
C# /.NET. Copyright by 3bird Projects 2018,
C# /.NET Copyright by 3bird Projects 2018, http://edukacja.3bird.pl Ogólne Opracowana przez Microsoft platforma programistyczna.net Framework jest odpowiednikiem platformy Java. Obejmuje gotowe biblioteki,
Języki i paradygmaty programowania - 1
doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.edu.pl http://www.tjeleniewski.wstt.edu.pl Cele przedmiotu Umiejętność zastosowania i oceny przydatności paradygmatów
Ćwiczenie 1. Przygotowanie środowiska JAVA
Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.
Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
Java. Programowanie Obiektowe Mateusz Cicheński
Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja
Zaawansowane aplikacje WWW - laboratorium
Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w
Programowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka
Multimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Język Java wątki (streszczenie)
Programowanie współbieżna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Języka Java wątki Autor:
Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003
Obliczenia równoległe i rozproszone w JAVIE Michał Kozłowski 30 listopada 2003 Wątki w JAVIE Reprezentacja wątków jako obiektów Uruchamianie i zatrzymywanie wątków Realizacja wątków Ograniczenia Mechanizmy
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017
Wykład 8 10 maj 2017 Współbieżność Watki w JAVA-ie Współbieżność może być realizowana na poziomie systemu operacyjnego (procesy) lub na poziomie aplikacji (watki). W JAVA-ie powszechnie stosuje się watki.
LINQ TO XML. Autor ćwiczenia: Marcin Wolicki
LINQ TO XML Celem ćwiczenia jest zapoznanie się z możliwościami przetwarzania dokumentów XML na platformie.net. W toku zadania zostaną przedstawione dwie technologie: LINQ TO XML i XPath. Autor ćwiczenia:
Programowanie proceduralne w języku C++ Podstawy
Programowanie proceduralne w języku C++ Podstawy Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki
Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.
Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Podstawy programowania. Wprowadzenie
Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne
Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8
Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Kurs programowania. Wykład 8. Wojciech Macyna
Wykład 8 Program bez watków, jeden procesor, trzy zadania Program z watkami, jeden procesor, trzy zadania Procesory wielordzeniowe, każde zadanie na osobnym procesorze Trzy zadania uruchomione w watkach
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
Laboratorium Programowania Kart Elektronicznych
Laboratorium Programowania Kart Elektronicznych Programowanie JavaCard Marek Gosławski Przygotowanie do zajęć dokumentacja JavaCard i GlobalPlatform środowisko programistyczne karta JavaCard Potrzebne
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.
Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,
Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Java EE produkcja oprogramowania
Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez
Java jako język programowania
Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)
1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Laboratorium 1 - Programowanie proceduralne i obiektowe
Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?
Programowanie równoległe i rozproszone. W1. Wielowątkowość. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone W1. Wielowątkowość Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np.
Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński
Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Podstawy współbieżności
Podstawy współbieżności Algorytmy i struktury danych. Wykład 6. Rok akademicki: 2010/2011 Od koncepcji współbieżności do systemów rozproszonych Współbieżnośd rozważany na poziomie koncepcyjnym sposób realizacji
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Wykład 12. Programowanie serwera MS SQL 2005 w C#
Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych
Visual Studio instalacja
Visual Studio 2017 - instalacja Do tej pory napisaliśmy wiele programów, z czego niemal wszystkie były aplikacjami konsolowymi. Najwyższy więc czas zająć się tworzeniem aplikacji z graficznym interfejsem
Wprowadzenie do języka Java
WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.
Programowanie komputerów
Programowanie komputerów Wykład 7: Programowanie wielowątkowe w Javie dr inż. Walery Susłow Współbieżność Programy współbieżne (concurrent software) aplikacje potrafiące wykonywać kilka operacji w tym
Podstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Podstawy programowania w lejos
Podstawy programowania w lejos Plan wykładu 1. Prezentacja rozwiązań zadań domowych z pierwszych zajęć. 2. Maszyna wirtualna lejos: a. instalacja SDK lejos na komputerze, b. instalacja lejosa na kostce
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)
I. WSTĘP Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych) Algorytm - sposób na osiągnięcie celu w pewnych ograniczonych krokach. Program komputerowy realizuje zawsze algorytm.
Metodyka programowania. Podstawy C#
Metodyka programowania Podstawy C# Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas
Programowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
Aplikacja wielowątkowa prosty komunikator
Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host
Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa
Narzędzie pomocnicze przedmiotu Podstawy Informatyki - złożoność obliczeniowa Piotr Jeruszka 1 25 listopada 2013 1 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska pjeruszka@icis.pcz.pl
Wprowadzenie do programowania współbieżnego
Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie
Środowiska i platformy programistyczne
Środowiska i platformy programistyczne 1 Rys historyczny lata 80-90: efektywność! Cel: zwiększyć efektywność programisty jedno narzędzie: integracja edytor kodu, funkcje programistyczne (kompilacja, łączenie,
Spis treści. 1 Java T M
Spis treści 1 Java T M 1 2 Co to jest Platforma Java T M 1 3 Przygotowanie komputera 2 4 Pierwszy program 2 5 Dokumentacja 3 6 Budowa aplikacji. Klasy. 3 7 Pola i metody 4 8 Konstruktory 5 9 Inne proste
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 System.Windows.Forms System.Windows.Forms Core infrastructure podstawowe operacje
Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis, www.erudis.pl
Swing Application Framework czyli tam i z powrotem Informacje o mnie Imię: Piotr Nazwisko: Kochański Praca: programista Java, PHP + kilka egzotycznych wynalazków Miejsce pracy: firma Erudis (prawdopodobnie
Programowanie Współbieżne
Programowanie Współbieżne C# 1 Materiały http://www.microsoft.com/express/download/ http://msdn.microsoft.com/en-us/library/aa645740(vs.71).aspx http://www.albahari.com/threading/ http://www.centrumxp.pl/
Język Java wątki (streszczenie)
Programowanie współbieŝna Język Java wątki (streszczenie) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Podstawowe pojęcia: procesy
Obsługa wyjątków. Język C++ WW12
Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try
Delphi podstawy programowania. Środowisko Delphi
Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Db4o obiektowa baza danych wersja.net
Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala
Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7
5.0 5.3.3.5 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7 Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych
Programowanie Obiektowe Ćwiczenie 4
Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1
Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Wyjątki mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Spis treści Wyjątki... 3 2 Wyjątki Podczas pracy programu
Programowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera
Zaawansowane programowanie w C++ (PCP)
Wykład 10 - boost Thread. 8 czerwca 2007 Równoległość bardzo wolna reakcja człowieka wolne urządzenia wejścia - wyjścia (np. drukarki) bardzo szybkie procesory można przeprowadzać obliczenia podczas obsługi
Programowanie obiektowe
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania
WPROWADZENIE DO JĘZYKA JAVA
WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Języki i Techniki Programowania II. Wykład 7. Współbieżność 1
Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...
KORZYSTANIE Z KONTROLKI.NET LENDEVICERS232 DODAWANIE KONTROLKI DO ZBIORU KOMPONENTÓW DOSTĘPNYCH W PALECIE TOOLBOX (ŚRODOWISKA PROGRAMISTYCZNE FIRMY MICROSOFT) W środowisku programistycznym (Visual C++,