threads threadpools Timers Asynkrona metoder parallell exekvering av loopar
|
|
- Viktoria Lind
- för 4 år sedan
- Visningar:
Transkript
1 Samtidig exekvering
2 En orientering En applikation kan ha flera samtidigt exekverande trådar, threads Ofta används trådar från threadpools. Threadpools effektiviserar hanteringen av trådar Trådar kan återanvändas Automatisk lastfördelning mellan processorer Timers, kan eventuellt utnyttja trådar Asynkrona metoder, Background workers och Tasks är tekniker som underlättar samtidig exekvering Repetitiva arbeten kan effektiviseras med parallell exekvering av loopar
3 Ett exempel med trådar using System; using System.Threading; class ThreadTest static void Main( ) Thread extratråd = new Thread (WriteY); extratråd.start(); Lägg märke till att det inte går att avgöra i vilken ordning som de båda trådarna exekverar på en dator som enbart har en processor. Även för en dator med flera processorer blir utskriften slumpartad på grund av att de båda trådarna konkurrerar om metoden Consol.WriteLine // Simultaneously, do something on the main thread. for (int i = 0; i < 1000; i++) Console.Write ("x"); static void WriteY( ) for (int i = 0; i < 1000; i++) Console.Write ("y"); yyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxx
4 Gemensamma resurser using System; using System.Threading; public class Program private const int maxantal = int.maxvalue; private static long räknare; public static void Main() Thread extratråden = new Thread(Öka); extratråden.start(); Minska(); extratråden.join(); Console.WriteLine("Räknaren: 0", räknare); private static void Minska() for (int i = 0; i < maxantal; i++) räknare--; public static void Öka() for (int i = 0; i < maxantal; i++) räknare++; Resultat blir fel på grund av att räknare är en gemensam resurs för de båda trådarna. Vid contex switch kan beräkningen av ++ eller avbrytas mitt i operationen, vilket leder fel.
5 Använd lås! using System; using System.Threading; public class Program private static object ettobjekt = new object(); private const int maxantal = int.maxvalue; private static long räknare; public static void Main() Thread extratråden = new Thread(Öka); extratråden.start(); Minska(); extratråden.join(); Console.WriteLine("Räknaren: 0", räknare); I och med du använder lås kan deadlocks uppstå! Vad sker om Öka anropas inifrån det låsta området i Minska och i Minskas låsta område anropas Öka? private static void Minska() for (int i = 0; i < maxantal; i++) lock (ettobjekt) räknare--; public static void Öka() for (int i = 0; i < maxantal; i++) lock (ettobjekt) räknare++;
6 using System; using System.Threading; Trådar som samarbetar, Set och WaitOne class BasicWaitHandle // AutoResetEvent släpper förbi exakt en tråd åt gången static AutoResetEvent vändkorset = new AutoResetEvent(false); private static int tal = 0; static void Main() new Thread(Waiter).Start(); // Borde göra något vettigt, men sover i det här exemplet... Thread.Sleep(2000); tal = 13; // Släpper förbi exakt en tråd genom vändkorset vändkorset.set(); static void Waiter() // Den exekverande tråden får vänta vid vändkorset Console.WriteLine("Waiting..."); vändkorset.waitone(); // Till dess att vändkorset öppnas för passage Console.WriteLine("Talet är 0.", tal);
7 ThreadPool using System; using System.Threading; public class Program static void Main() ThreadPool.QueueUserWorkItem(Go); ThreadPool.QueueUserWorkItem(Go, 123); Console.ReadLine(); static void Go(object data) Console.WriteLine( "Hello from the thread pool! " + data); Poolen består av redan färdiga trådar Trådarna återanvänds Antal trådar begränsas till ett rimligt antal Samtidigt exekverande trådar fördelas optimalt mellan processorkärnorna
8 Exempel på användning av ThreadPool public class Server public static void Main() Console.WriteLine("SERVER"); // Skapar en TCP-lyssnare och lyssnar efter klienter try Console.Write("Serverns ip-adress (till exempel, ): "); IPAddress ipadress = IPAddress.Parse(Console.ReadLine()); Console.Write("Serverns portnummer (till exempel, 61234): "); int portnr = int.parse(console.readline()); TcpListener tcplyssnaren = new TcpListener(ipAdress, portnr); tcplyssnaren.start(); int antalanslutningar = 0; while (true) Console.WriteLine("Servern väntar på en klient..."); TcpClient nyklient = tcplyssnaren.accepttcpclient(); ThreadPool.QueueUserWorkItem(kommunikation, nyklient); Console.WriteLine("Anslutning 0 är upprättad.", ++antalanslutningar); catch (Exception fel) Console.Error.WriteLine(fel.Message); Den fullständiga koden finns i exemplet KlientServer
9 Ett exempel med parallell exekvering using System; using System.Diagnostics; using System.Threading.Tasks; public class Program public static void Main() Random slump = new Random(); double[,] xs = GetMatris(300, 400, slump), ys = GetMatris(400, 500, slump), zs = new double[300, 500]; Console.WriteLine("Matriserna är skapade"); var stoppuret = Stopwatch.StartNew(); // Matrismultiplikation, innebär 300 * 400 * 500 = flyttalsmultiplikationer! // Iterationerna i den yttersta loopen körs via flera samtidigt exekverande trådar. Hur många // samtidiga trådar som kommer att exekvera beror bland annat på antal tillgängliga processorer. Parallel.For(0, zs.getlength(0), i => for (int j = 0; j < zs.getlength(1); j++) zs[i, j] = 0.0; ); for (int k = 0; k < xs.getlength(1); k++) zs[i, j] += xs[i, k] * ys[k, j]; stoppuret.stop(); Console.WriteLine("Uppmätt tid för matrismultiplikationen: " + stoppuret.elapsed);
10 Timer utan extra trådar public partial class Programfönster : Form private int ticks = 0; private int riktning = -1; private Brush rödpensel = new SolidBrush(Color.Red); private const int DIAMETER = 25; public Programfönster() InitializeComponent(); timerutantråd.interval = 10; Timern är definierad i namnrymden System.Windows.Form Den exekverar utan extra tråd Den är utmärkt för enklare animeringar Den kod som körs vid varje tick får inte vara för omfattande! Den drar sig, det vill säga går inte exakt rätt private void panelrityta_paint(object sender, PaintEventArgs e) int x = (panelrityta.size.width - DIAMETER) / 2; int y = ticks; Graphics grafik = e.graphics; grafik.fillellipse(rödpensel, x, y, DIAMETER, DIAMETER); private void timerutantråd_tick(object sender, EventArgs e) if (ticks <= 0 ticks >= (panelrityta.size.height - DIAMETER)) riktning *= -1; ticks += riktning; panelrityta.refresh();
11 Timer som använder en extra tråd using System; using System.Timers; Timern är definierad i namnrymden System.Timers Den exekverar via en extra tråd Den är svårare att använda i grafiska gränssnitt på grund av att endast den tråd som är avsedd för det grafiska gränssnittet ska anropa grafiska komponenter, inga andra trådar ska göra det! public class Program public static void Main() System.Timers.Timer timermedtråd = new System.Timers.Timer(); timermedtråd.elapsed += new ElapsedEventHandler(närTimernTickar); timermedtråd.interval = 2000; timermedtråd.enabled = true; Console.WriteLine("Press the Enter key to exit the program."); Console.ReadLine(); // Den här metoden anropas och körs av timerns tråd, det vill säga inte // programmets huvudtråd som exekverar main! private static void närtimerntickar(object source, ElapsedEventArgs e) Console.WriteLine("Hello World!");
12 Lite om asynkrona metoder Citat från Microsofts webbsida: Asynchrony is essential for activities that are potentially blocking, such as when your application accesses the web. Access to a web resource sometimes is slow or delayed. If such an activity is blocked within a synchronous process, the entire application must wait. In an asynchronous process, the application can continue with other work that doesn't depend on the web resource until the potentially blocking task finishes. Asynchrony proves especially valuable for applications that access the UI thread because all UI-related activity usually shares one thread. If any process is blocked in a synchronous application, all are blocked. Your application stops responding, and you might conclude that it has failed when instead it's just waiting. Citat från: The task to which the await operator is applied typically is the return value from a call to a method that implements the Task-Based Asynchronous Pattern
13 Exempel på en synkron och motsvarande asynkrona metod private void buttonsynkront_click(object sender, EventArgs e) WebClient webbklienten = new WebClient(); string url = textboxurl.text; int indexlastslasch = url.lastindexof('/'); string filnamn = url.substring(indexlastslasch + 1); webbklienten.downloadfile(url, filnamn); MessageBox.Show(filnamn + " har hämtats."); async private void buttonasynkront_click(object sender, EventArgs e) WebClient webbklienten = new WebClient(); string url = textboxurl.text; int indexlastslasch = url.lastindexof('/'); string filnamn = url.substring(indexlastslasch + 1); await webbklienten.downloadfiletaskasync(url, filnamn); MessageBox.Show(filnamn + " har hämtats.");
14 BackgroundWorker Är en hjälpklass för att hantera trådar Det går att signalera att en worker ska avsluta Det går att använda callback-metoder för att rapportera arbetets fortskridande, att det är avslutat och om arbetet avbröts Kan användas tillsammans med Windows fönster och dess grafiska komponenter Exceptions från en worker går att hantera
15 Ett exempel med BackGroundWorker, using System; using System.Threading; using System.ComponentModel; del 1 class Program static BackgroundWorker bw; static void Main() bw = new BackgroundWorker(); bw.workerreportsprogress = true; bw.workersupportscancellation = true; bw.dowork += bw_dowork; bw.progresschanged += bw_progresschanged; bw.runworkercompleted += bw_runworkercompleted; bw.runworkerasync("hello to worker"); Console.WriteLine("Press Enter in the next 5 seconds to cancel"); Console.ReadLine(); if (bw.isbusy) bw.cancelasync(); Console.ReadLine();
16 Ett exempel med BackGroundWorker, del 2 // OBS! bw_dowork får inte anropa några grafiska komponenter!!!! static void bw_dowork(object sender, DoWorkEventArgs e) string meddelande = (string)e.argument; for (int i = 0; i <= 100; i += 20) if (bw.cancellationpending) e.cancel = true; return; bw.reportprogress(i); Thread.Sleep(1000); // Just for the demo... don't go sleeping // for real in pooled threads! //throw new ApplicationException("Testar"); e.result = meddelande.length; // This gets passed to RunWorkerCompleted
17 Ett exempel med BackGroundWorker, del 3 // bw_runworkercompleted får gärna anropa komponenter som används i det grafiska // användargränsnsittet! static void bw_runworkercompleted(object sender, RunWorkerCompletedEventArgs e) if (e.cancelled) Console.WriteLine("You cancelled!"); else if (e.error!= null) Console.WriteLine("Worker exception: " + e.error.tostring()); else Console.WriteLine("Meddelandets längd: " + e.result); // from DoWork // bw_progresschanged får gärna anropa komponenter som används i det grafiska // användargränsnsittet! static void bw_progresschanged(object sender, ProgressChangedEventArgs e) Console.WriteLine("Reached " + e.progresspercentage + "%");
18 Ett exempel med en asynkron delegat using System; public class Program private delegate int Arbetare(string text); static void Main() string enrad = "test"; Arbetare arbetaren = Arbete; Console.Write("Skriv en rad: "); enrad = Console.ReadLine(); IAsyncResult pågåendearbete = arbetaren.begininvoke(enrad, null, null); // Här kan vi utföra arbete samtidigt som delegatens metod exekeverar via den extra tråden Console.WriteLine("Vi har precis skickat i väg ett arbete till en annan tråd"); Console.WriteLine("Arbetet exekveras samtidigt som de här båda raderna skrivs ut."); int result = arbetaren.endinvoke(pågåendearbete); Console.WriteLine("\"" + enrad +"\"" + " består av " + result + " tecken."); static int Arbete(string text) return text.length;
19 Tasks Ett task representerar ett inkapslat arbete som exekverar asynkront Ett task påminner om en delegat men en vanlig delegat exekverar synkront Tasks får sina trådar från ThreadPools Tasks kan meddela när deras arbeten är utförda Tasks kan returnera resultat
20 using System; using System.Collections.Generic; Exempel med Tasks using System.Threading.Tasks; using AddisonWesley.Michaelis.EssentialCSharp.Shared; public class Program public static void Main() Task<string> task = Task.Run<string>(() => PiCalculator.Calculate(1000)); foreach (char busysymbol in Utility.BusySymbols()) if (task.iscompleted) break; System.Threading.Thread.Sleep(200); Console.Write("\b" + busysymbol); Console.Write('\b'); Console.WriteLine(task.Result); public class Utility public static IEnumerable<char> BusySymbols() string busysymbols /-\ /"; int next = 0; while (true) yield return busysymbols[next]; next = (next + 1) % busysymbols.length; De fullständiga exemplet hittar du i PiCalculator
Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java
DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/4 2014 Innehåll Kort om Javas Exceptions Trådar i Java swing- klassen Timer Klient-Server-program Javas Exceptions Checked måste hanteras,
Läs merTung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013
DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 Innehåll Trådar i Java swing- klassen Timer Klient-Server-program Trådar Tråd = enkel process Ett program kan ha flera trådar, flera
Läs merAtt skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merConcurrency Saker händer samtidigt. Process En instans av ett program
Concurrency Saker händer samtidigt Hur gör vi flera saker samtidigt på en dator? - Dela på en CPU - Flera CPU Flera processer på en dator. Operativsystemet (OS) tilldelar dem körtid (time slices, prioritet)
Läs merMetoder (funktioner) Murach s: kap Winstrand Development
(funktioner) Murach s: kap 6 2013-01-23 1 Winstrand Development Metoder I C# kan vi dela in koden i block en kodsekvens ska köras likadant på flera ställen i applikationen. Detta block kallas för en metod
Läs merObjektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016
Objektorienterad Programkonstruktion Föreläsning 11 6 dec 2016 Föreläsningen 13/12 Halvtidsrepetition Maila frågor som ni vill att jag tar upp! ccs@kth.se Processer Vad vi i dagligt tal menar när vi pratar
Läs merF4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Läs merLanguage Integrated Query, LINQ, och databaser
Language Integrated Query, LINQ, och databaser 1 Imperativ eller deklarativ programmering Imperativ programmering Du som programmerare beskriver i detalj alla steg som måste utföras för att lösa en viss
Läs merRecitation 4. 2-D arrays. Exceptions
Recitation 4. 2-D arrays. Exceptions Animal[] v= new Animal[3]; 2 declaration of array v Create array of 3 elements v null a6 Assign value of new-exp to v Assign and refer to elements as usual: v[0]= new
Läs merObjektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016
Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class
Läs merLösningsförslag till omtentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,
Läs merDetta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling
Detta dokument är ett exempel, cirka andra hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling Fulltentamen vitsord: 3=28p, 4=38p, 5= 48p, max 60p. Max 30p i denna halvtentamen Hjälpmedel:
Läs merParallellism, återblick
Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata
Läs merExam Concurrent and Real-Time Programming
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Exam Concurrent and Real-Time Programming 2018 08 23, 14.00 19.00 1. Vad är prioritetsinversion? Illustrera med ett enkelt exempel. Redogör
Läs merÖvning vecka 6. public void method2() { //code block C method3(); //code block D }//method2
Övning vecka 6. TDA550 - Objektorienterad programvaruutveckling IT, fk Denna vecka ska vi titta på undantag, testning, generiska enheter, samlingar och designmönstret Iterator. Uppgift 1 Exceptions a)
Läs merTDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs merDUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.
1 (8) DUGGA: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt namn, personnummer och e-postadress på försättsbladet. Skriv rent dina svar.
Läs merF5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Läs merPolymorfi. Objektorienterad och komponentbaserad programmering
Polymorfi Objektorienterad och komponentbaserad programmering Polymorfi, mångtydighet Polymorfi innebär att en viss konstruktion kan exekveras på olika sätt Överlagring av metoder ger ett polymorft beteende
Läs merIdag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Läs merJAVAUTVECKLING LEKTION 4
JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet
Läs merSurfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets
Surfning Webbklienter och webbservrar Starta Firefox (eller Opera, eller Internet Explorer, eller... ). Skriv en URL i adressfältet: http://www.w3.org/history/1989/proposal.html. Webbläsaren kopplar upp
Läs merTentamen LÖSNINGSFÖRSLAG. c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt.
Tentamen 101213 - LÖSNINGSFÖRSLAG Uppgift 1. a) Ger utskriften c( ) in D b) Ger utskriften true c) Tilldelningen C x = new D() ger kompileringsfel eftersom klassen D är abstrakt. d) Ger utskriften b( )
Läs merDIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga
203-03-9 203-03-9 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6
Läs merOOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Läs merTentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)
Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)
Läs merFÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Läs mer/* * * Lösningsförslag tentamen DIT950 * Datum * */ /* * -1 - */ För samtliga gäller,se föreläsningsanteckningar.
* * Lösningsförslag tentamen DIT950 * Datum 150317 * * -1 - För samtliga gäller,se föreläsningsanteckningar. * - 2 - (Diagram visas inte, kontakta mig för ev frågor) // a C c = new A(); // Compile! Sub
Läs merGrundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla TentamensKod: Tentamensdatum: 180322 Tid: 09.00 13.00 Hjälpmedel:
Läs merDI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Läs merMekanismer. (implementation)
Mekanismer (implementation) Repetition Semafor Räknar tillgängliga resurser Initieras med startvärde Vid förbrukning: väntar tills resurs finns Användning: invänta händelse Lås Markerar att en variabel/datastruktur
Läs merPROGRAMMERING-Java Omtentamina
PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -
Läs merTentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2014 06 02, 8.00 13.00 Del 1 1. a) TCP (Transmission Control Protocol) och UDP (User Datagram
Läs merDelegater, events och lambdauttryck
Delegater, events och lambdauttryck Läs avsnitt 5.13 Delegater, i kursboken och Delegater, https://msdn.microsoft.com/en-us/library/ms173172.aspx Events, https://msdn.microsoft.com/en-us/library/awbftdfh.aspx
Läs merGeneriska konstruktioner. Kursbokens kapitel 13
Generiska konstruktioner Kursbokens kapitel 13 1 Vad är en generisk konstruktion? Generisk står för; allmän eller generell En generisk konstruktion kan användas för olika typer av data Med hjälp av templates
Läs merÖvning Dictionary. Övning 1. Steg 1: På din virtuella maskin, starta Visual Studio.
1 Övning Dictionary När collection av typen Dictionary används, används nyckel och ett värde som ett par för lagringen. Duplikat av information kan lagras, men nyckel är alltid unik. Generic collections
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Läs merObjektorienterad Programmering (OOP) Murach s: kap 12-16
Objektorienterad Programmering (OOP) Murach s: kap 12-16 2013-01-28 1 Winstrand Development Objektorienterad Programmering Förkortas OOP Objektorientering innebär att man delar in koden i olika block,
Läs merFöreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack
Läs merFöreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Läs merTentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2012 05 28, 8.00 13.00 Del 1 1. Time To Live (TTL) anger hur många routrar ett multicastpaket
Läs merTentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 03 14, 8.00 13.00 Del 1 1. Applikationslagret levererar data mellan applikationer och till
Läs merl uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2
Strukturerad programmering l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll 1 2 Olika ansatser Begrepp Den manipulativa/imperativa
Läs mer2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik
2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det
Läs merProgrammering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08
Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...
Läs merHögskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2000-03-22, kl 14.00-18.00 Hjälpmedel: En lärobok
Läs merThe Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.
Innehåll The Last Adventure Den sista lektionen Repetition Examination Slutar 14:45 (minnesstund) Många saker "flashar" förbi - hojta Objektorientering Språket Java Class Object Inheritance Polymorphism
Läs merFöreläsnings 9 - Exceptions, I/O
Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public
Läs merLösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140828 a) public class MyMax { public static void main(string[] args) { //5 ändra String till String[] System.out.println("Maximum is: " + maximum(5, 7)); //2 ändra
Läs merKungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h
Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag 2001 - maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h Antalet uppgifter : 2 (20p + 20p = 40 p) ) Lärare, jourhavande lärare :
Läs merGrundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Läs merAgenda (obs! halvdag)
Objektorienterad programmering Föreläsning 3 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (obs! halvdag) Do-satsen Break-satsen Continue-satsen Goto-satsen Switch-satsen Villkorsoperatorn
Läs merOutline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.
Outline Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Undantag Design Hösttermin 2017 En frukt har ett namn Man kan lägga en frukt i
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XIV: Undantag, Design Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Hashing Undantag Design Outline Hashing Undantag Design En frukt
Läs merTrådar. Aktiva objekt
Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.
Läs merImperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Läs merVad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes
Vad kännetecknar en god klass F12 Nested & En odelad, väldefinierad abstraktion Uppgiften kan beskrivas kort och tydlig Namnet är en substantiv eller adjektiv som beskriver abstraktionen på ett adekvat
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs mer1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
Läs merif (n==null) { return null; } else { return new Node(n.data, copy(n.next));
Inledning I bilagor finns ett antal mer eller mindre ofullständiga klasser. Klassen List innehåller några grundläggande komponenter för att skapa och hantera enkellänkade listor av heltal. Listorna hålls
Läs merITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Läs merFöreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag
Föreläsning 12 Föreläsning 12 Rörliga figurer Klassen Timer Undantag Något om applets Rörliga appletsfigurer Klassen Timer Undantag Något om applets Klassen javax.swing.timer I Swing finns en klass Timer
Läs merE12 "Evil is going on"
E12 "Evil is going on" Föreläsning 12, HT2014 AJAX Kurs: 1dv403 Webbteknik I Johan Leitet E12 Evil is going on Dagens agenda AJAX XMLHttpRequest-objektet JSON Vad är AJAX? Asynchronous JavaScript and XML
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merLäs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).
1 (11) TENTAMEN: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att
Läs merFöreläsning 3. Stack
Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista Evaluate postfix expressions Läsanvisningar
Läs merLösningsförslag, tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och
Läs merFöreläsning 3. Iteration while-satsen
Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har
Läs merE02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I
E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser
Läs merProvmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla (Ifylles av student) (Ifylles av student) Tentamensdatum:
Läs merObjektorienterad Programkonstruktion. Föreläsning dec 2015
Objektorienterad Programkonstruktion Föreläsning 12 14 dec 2015 Parallella Problem I program med flera parallella exekveringstrådar kan det uppstå problem, fel och andra fenomen som inte förekommer i enkeltrådade
Läs merHögskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merTentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2006 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095) 2004-05-27, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merTentamen Programmeringsteknik II Inledning. Anmälningskod:
Tentamen Programmeringsteknik II 2016-01-11 Inledning I bilagan finns ett antal mer eller mindre ofullständiga klasser. Några ingår i en hierarki: List, SortedList, SplayList och ListSet enligt vidstående
Läs merTDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5 Daniel Wetterbro 23 november 2009 Sammanfattning Denna vecka ska vi titta på I/O, samlingar och generics. Övningarna är graderade
Läs merLösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration
Läs merLösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004
Lösningsförslag Programmeringsmetodik, KV: Java och OOP 17 januari 2004 Examinator: Johan Karlsson Skrivtid: 9-15 Hjälpmedel: En av följande böcker: Barnes & Kölling: Objects First With Java a practical
Läs merInledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio
Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så
Läs merExceptions (undantag) Murach s: kap 7
Exceptions (undantag) Murach s: kap 7 2013-01-28 1 Winstrand Development Exceptions (undantag) Inträffar ett oförutsägbart fel i när programmet körs kommer ett undantag (exception) att inträffa Undantaget
Läs merProgrammering i C++ EDA623 Något om C# EDA623 (Föreläsning 14) HT / 17
Programmering i C++ EDA623 Något om C# EDA623 (Föreläsning 14) HT 2013 1 / 17 De sista pusselbitarna Innehåll Hello World Lite historik Tillgänglighet Jämförelse med C++ Ny for-variant (foreach) Egenskaper
Läs merMer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada
Mer källkod Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne Erik Forslin efo@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 1 Styrstrukturer i Java En styrstruktur är något som påverkar
Läs merAndroid fortsättning. TDDD80 Mobila och sociala applikationer
Android fortsättning TDDD80 Mobila och sociala applikationer 2018-02-24 Krav labb A2 + A3 Scrollbar lista + detalj-vy Stor skärm - liten skärm Rotation Nätverksanrop Hämta data från server Hantera JSON
Läs merHögskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson
Högskolan Dalarna sid 1 av 5 Lösningsförslag till TENTAMEN I OBJEKTORIENTERAD PROGRAMMERING 5p,för D2 1999-01-14 1. a) Systemavgränsningen är dokument som innehåller en kortfattad beskrivning av vad som
Läs merIngenjörsfirman Stéen 2001-12-13 Java Sida 1 av 1
Java Sida 1 av 1 Java Mål och Syfte Målet med denna kurs i Java är att du direkt efteråt ska kunna börja utveckla dina första Javaapplikationer. Kursen ger dig många konkreta exempel på hur detta effektiva
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merCommand line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
Läs merFakulteten för ekonomi, kommunikation och IT. Corba. Datum: Mathias Andersson
Fakulteten för ekonomi, kommunikation och IT Corba Datum: 2007-10-17 Namn: Kurs: Henrik Bäck Mathias Andersson DVGC02 Innehållsförteckning Implementation 3 IDL-fil 3 Server 3 Klient 3 Körning 3 Bilagor
Läs merRecap Mera om nya typer Kort Fält. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. IDE-sektionen.
Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 14 Utkast 1 Recap 2 Mera om nya typer 3 Kort 4 Fält Recap Man kan ge namn till typer. Vi undersökte enum
Läs merFöreläsning 3: Abstrakta datastrukturer, kö, stack, lista
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina
Läs merFöreläsning 12: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 12: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Problemlösning, dvs hur man ska tänka för att hitta lösning int mängd/set
Läs merOOP Tentamen
DVS SU/KTH 1 (6) OOP OOP Tentamen 2010-01-15 15.00 20.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 Anvisningar Skriv namn och personnummer på varje inlämnat blad. Påbörja varje ny uppgift på nytt blad. Skriv
Läs merTentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2008 05 26, 8.00 13.00 1. a) Raden sent = input.read(buffer); läser in så många bytes (dock max
Läs mer