Tråde og synkronisering. Tråde To typer tråde Dedikerede tråde -programmør opretter og tilknytter metode -”kører tråd-metoden (job) én gang” Tråd pulje.

Slides:



Advertisements
Lignende præsentationer
SPBG.  Test driven development  Unit test frameworks  MOSS TDD  Mocking  Design patterns.
Advertisements

1 JavaServer Faces Copyright © Lund & Bendsen A/S Navigation, events & listeners.
Forventninger til hinanden • Jeg kan ikke læse for jer, det er en forudsætning at i har læst • Jeg vil give detaljeret feedback til jeres rapporter • Hvor.
Velkommen til Softwarekonstruktion
1 GUI Programmering i.NET WinForms. Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms are the traditional, desktop GUI.
Introduktion til sikkerhed i.NET Mark S. Rasmussen iPaper ApS Part 2.
Når en applikation går i fejl… … er det interessant, at vide noget om: Hvornår gik applikationen i fejl Hvilken applikation gik i fejl Hvad er fejlen.
Februar 2005Sprog-nyheder i C# og VB1 Captator Tlf: Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director for Denmark.
Oktober 2007Overblik over udviklingen af.NET frameworket1 Overblik over udviklingen af.NET frameworket - et kig på de vigtigste nyheder i de seneste versioner.
C#: Data Typer. Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies, written in different languages, to.
Efteruddannelse Embedded C Modul 4 (Torsdag den 14/1-2010)
Using Transactional NTFS (TxF) in.NET Mark S. Rasmussen iPaper ApS improve.dk.
Processer/tråde Per P. Madsen1 Et stykke software der håndtere skiftet af CPU’en.  Dispatcher. Et antal selvstændige programmer.  Processer. Plus det.
Efteruddannelse Embedded C Modul 4 (Torsdag den 22/4-2010)
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
Arkitektur Embedded SQL Tema Persistens
Effective Java items Orange gruppe Thuy, Janne, Mads T.P., Oliver og Sebastian.
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
1 Nedarvning. 2 Plan Overlæsning af metoder og konstruktører Nedarvning fra klasser Implementering af grænseflader Retningslinjer for design af klasser.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Repetition: likelihood ratio test Test af hvorvidt faktorer med flere end 2 niveauer (mere end 1 parameter) kan udelades fra model: likelihood ratio test.
// Semaphore.java package semaphore; public class Semaphore { int resources = 1; // Constructors Semaphore() {} Semaphore(int i) { resources = i; } synchronized.
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
12 – GUI med Swing. 2 NOEA2009Java-kursus – GUI med Swing Designer view Komponenter Frame Properties Inspector.
WCF service Hostet på website x. Opret tomt web applikations projekt.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
Distribution af funktionalitet Webservice med WCF x.
Distribution af funktionalitet Webservice med WCF x.
Hvorfor trådning? Performance Responsivness. Succeskriterier Forbedring af performance –Opgaverne skal være uafhængige –Jo flere afhængige opgaver, jo.
VPG/Otto Knudsen1 VPR - Repetition Trådning Distribueret Programmering Sprogteori Grafer.
Abstrakte klasser og interfaces i Java
Object-Orienteret Programmering og Design Kilde: Joe Hummel.
Programering af mobile enheder Windows Phone Storage.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Session Når man hoster en WCF Service på ASP.NET website, kan man bruge ASP.NET’s Session.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Maj 2005Embedded.NET1 Embedded.NET Introduktion til.NET framworket og.NET Compact Frameworket Captator Tlf: Carsten Juel Andersen.
Collectionklasser Ekstra materiale. Collections Motivation – hvorfor bruge collections? Realisering af en-til-mange relationer – Importer, erklær, initialiser.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Maj 2003Bedre brugergrænseflader med multithreading1 Carsten Juel Andersen Softwarearkitekt Mobil: Captator Tlf:
SDP - Repetition Sockets Trådning Delegater Remoting Sprogteori
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
MEC, DAIMIIntroJava AAU1 Crayon-objekter nu med loops og metoder.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Lektion 7 Læsestof: Kopier fra Caranno
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
Repetition: Introduktion til OOP med C# og .NET
Procestræ under afvikling af cp init login shell cp cp src dest.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
 Processer og tråde  Implementation af tråde  Trådinterferens  Synkronisering  Atomare aktiviteter.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Per P. MadsenStyresystemer og tjenester1 Threads.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Samtidighed. Disposition Formål med tråde Eksempel på fordel ved tråde Thread-pooling Livscyklus Problemstillinger Algoritmer ◦Dekkers ◦Peterson Opsumering.
Spec. af LottotalsGenerator interface LottoTal{ // S: mgd. af udtrukne tal // min, max: int - angiver intervallet (incl.) void set(int min, int max); //PRE.
Introduktion til programmering Repetition - ArrayList.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Parallel programming Rasmus D. Lehrmann DM
Interrupts. Indtil nu har hastigheden på dine blinkende LEDs været styret af et loop. Som du muligvis også har bemærket afhænger det meget af hvor travlt.
Tråde og synkronisering
Præsentationens transcript:

Tråde og synkronisering

Tråde To typer tråde Dedikerede tråde -programmør opretter og tilknytter metode -”kører tråd-metoden (job) én gang” Tråd pulje (worker-threads) -Trådmetoder (job) pladseres i en kø, hvorfra trådpuljen udvælger og afvikler -Tråde i puljen stopper ikke (suspendes blot hvis ikke noget arbejde)

Tråde Oprettelse af dedikeret tråd: Tråd objekt med tilknyttet delegat 2 muligheder for delegat -void metode uden parameter -void metode med et objekt som parameter Delegat angives som parameter ved oprettelsen af tråd- objekt Evt. parameter (1 objekt) angives i trådens startmetode

Tråde Oprettelse og start af tråd uden parameter: using System.Threading; … Thread tråd = new Thread(new ThreadStart(TrådMetode)); eller blot = new Thread(TrådMetode); tråd.Start(); … void TrådMetode() { …

Tråde Oprettelse og start af tråd med parameter: using System.Threading; … Thread tråd = new Thread(new ParameterizedThreadStart (TrådMetode)); eller blot = new Thread(TrådMetode); tråd.Start( 10 ); … void TrådMetode(object startparameter) { int tal = (int) startparameter; …

Tråde Start af tråd-metode i trådpulje: Parameter kan udelades i start og vil så være null i metoden using System.Threading; … ThreadPool.QueueUserWorkItem(new WaitCallback(TrådPoolMetode),10); eller blot ThreadPool.QueueUserWorkItem(TrådPoolMetode,10); … void TrådMetode(object state) { int tal = (int) state; …

Tråde Væsentlige Properties og metoder Thread klassen: Sleep(..) CurrentThread Tråd objekt: Join() IsAlive Priority IsThreadPoolThread Interrupt()(afbryder wait sleep join) IsBackground(set og get)

Tråde Timer – speciel tråd med ekstra parametre for enkelt eller repeterende ticks (bemærk ingen start-metode). using System.Threading; … Timer timer = new Timer(new TimerCallback (TimerMetode),…….); eller blot = new Timer(TimerMetode,……); … void TimerMetode(object state) { …

Synkronisering Fere mulige mekanismer: Monitor lock (excetionsafe Monitor wrapper) Interlocked (tælle semaphore) ReaderWriterLock (reader/writer problem – med kaskadekald) Mutex (binær kerne-semafor – deles af processer) Semaphore (givet antal adgange til ressource)

Synkronisering Monitor med metoderne: Enter (lock-object)- blocking lock Exit (lock-object)- release Wait (lock-object)- release and wait Pulse (lock-object)- notify PulseAll (lock-object)- notifyall TryEnter (lock-object)- nonblocking lock

Synkronisering lock (lock-object) – exception safe Monitor wrapper Svarer til: Monitor.Enter(lock-object); try { …. } finally { Monitor.Exit(lock-object); }

Synkronisering ReaderWriterLock (spec. semafor for nem løsning af reader-writer problemet) Vigtige metoder: AcquireReaderLock (lock-object) ReleaseReaderLock (lock-object) AcquireWriterLock (lock-object) (pas på deadlock hvis allerede readerlock) ReleaseWriterLock (lock-object) UpgradeToWriterLock (lock-object) DowngradeFromWriterLock (lock-object)

Synkronisering Der er lavet synkroniserede wrapper klasser for flere colletionklasser. Eks. for ArrayList ArrayList list = new ArrayList(); ArrayList safelist = ArrayList.Synchronized(list);