cis 644 thus. oct. 28, 1999 w10b … misc. questions … thread, runable
DESCRIPTION
CIS 644 Thus. Oct. 28, 1999 W10B … misc. questions … thread, Runable … communication patterns. Exam1 … covers: class & scenario models open book … < 1.5 hours Tues Nov 2. on campus … in class off campus … sent email 4:30pm C.T. - PowerPoint PPT PresentationTRANSCRIPT
CIS 644 Thus. Oct. 28, 1999 W10B
… misc. questions
… thread, Runable
… communication patterns
Exam1 …
covers: class & scenario models open book … < 1.5 hours
Tues Nov 2.
on campus … in class off campus … sent email 4:30pm C.T. email or fax it back
administrative:
> corrections to GRADES file are being made … will be reposted later.
> CIS web server was “killed” this week … temporarily moved … … some scripts may not work
CIS644 local pages should be OK now.
> I keep up with “urgent” email … rest may wait for a while (will post patterns lists later)
?? are GRADES 4 digits SSN number?... they are KSU student ID number.
?? send back off-campus homework… no … just class discussion
?? post “my answer”… no … posted TA’s answer
?? “1.5” hours for exam… on-campus ... up to 90 minutes
… off-campus … honor system will draw some diagrams … FAX is OK … “asap”
if you want to use Rose or other tool,great … don’t count that as part of exam time.
review questions:
"class variables" ,"class markers" (page 21)
c getList( ; list)
… there are times with class methods are required
Coad’s use of class methods for collections is optional … not my preference
my preference:
theAirports LOOP | getAirport( ; anAirport) -->| | anAirport | | getInfo( ) ----------------------->| ENDLOOP translates:
loop { anAirport = theAirports.getAirport( i );
}
??is this related to
aggregation vs composition ??
… no … I see A vs C as who owns the items who is responsible for keeping refs
UML … what are the items "part of"
?? c new(passenger; aReservation)
… converts to Java as:
aReservation = new Reservation(passenger)
?? Airports | c remove( anAirport) -->|
could translate as:
class Airports { Airport[ ] items; … void remove( integer i) { items[ i ] = null ; }
}
?? * getValues( ; values)
… * indicates a loop … calls to multiple objects from the collection
threads use comments: threads are used in: CIS625 distributed Processing CIS725 Computer Networks
I use Solaris threads & Posix threads.
I use the ACE framework (thread details are hidden within)… at Motorola
at Sprint:...Every application … is multi-threaded ... created our own thread classes in C++( inconsistencies with the standard class)
e.g.* credit card validation (C++) …
allows concurrent requests
* vendor communication (C++) …allows concurrent requests
* orders system (Java) .. Enterprise Java Beans framework (hidden multi-threads )
.. some Java threads.
.. more with multi-tasking in real-time OS(OS-9, iRMX, Unison, VersaDos) using C …these OS's have features such as: mailboxes, signals, shared memory for intertask communication
semaphores to control access
we use concurrency ...in modeling aircraft systems for real-time simulation
-----------------------------------------------------
threads (multiple processes) are becoming more common in systems we are developing
?? was there only one thread in the Video Store??
… Chap 1 … yes
… real… no… need to define the "system" arch.
assume: one processor, many agents
in PD … should be multiple Agent tasks, each with own UI
continuing into Chaps 4 & 5:
Coad: "this is easy" :-(
UML: objects: passive vs active active: process vs thread
ADA: object vs task
Java: Runable interface defines run()
but is not per se active object
Thread implements Runable and is active object
Runable object can be executed "in"(with ??) its own thread.… pass object to Thread(Obj) .
or, Runable object can make its ownthread, as Sensor version p. 194
or ..
Thread can execute several different runable objects (…invoke their run() ) … in sequence , of course.
threads can have priorities …
but current JVMs do not guarenteeexact mapping of priorities !!
Lea recommends:
HI … for system critical threads LO … for background threads
Coad mapping … p. 192 :-(
visual representation of active objects:
… at Java level, only Thread is really active,
… at design (abstract) level, Runable objects can be "active"
:-( Coad does not show bold boxes __ __Ada: /__ / for Task vs [__] for obj.
skim Chap 4, 5 for overview:
several different forms for communication
passive (polling) timer active (source notifies its listeners)
message vs notification:
of course, at Java level, notification implemented as message
End