DISTRIBUTED SYSTEMS
Principles and Paradigms
Second Edition
ANDREW S. TANENBAUM
MAARTEN VAN STEEN
Tanenbaum & Van Steen, Distributed
Systems: Principles and Paradigms, 2e, (c)
2007 Prentice-Hall, Inc. All rights reserved.
0-13-239227-5
- main thread
- minor thread by main thread (share cpu time)
- last terminated thread: main thread class mythread{ public static void main(String[]args){
Thread t; t=Thread.currentThread();
System.out.println(t); Thread[main,5,main] t.setName(“thread1”);
System.out.println(t);--> Thread[thread1,5,main]
class Thread2 extends Thread { public Thread2(){
System.out.println(“second thread starting”);} public void run(){ for(int i=0;i<500;i++)
}
System.out.println(“turn second”+i); } class mainthread{
Public static void main(Sting[]args){
Thread2 t=new Thread2(); t.start(); concurrency for(int i=0;i<500;i++)
}
System.out.println(“turn main:”+i);}
T0RG
T0RL
T1RG
T1RL
class Newthread extends Thread{ public void run(){ try{ for(int i=0;i<500;i++){
System.out.println(“child is sleeping”);
Thread.sleep(2000);} } catch (InterruptedException e){
System.out.println(“child interrupted”);}
System.out.println(“exit child”);
} …….> cont. next page
class mainthread{ public static void main(String[]args){
System.out.println(“befor….”);
Newthread t1=new Newthread(); t1.
start() ;
System.out.println(“after….”); try{
For(int j=0;j<500;j++){
System.out.println(“main starting:”+j);
Thread.sleep(2000);
If(j==25) t1.Interrupt();} } catch (InterruptedException e){
System.out.println(“main interrupted”);}
}
System.out.println(“exit main”);
thread: virtual processors (VP) in software, on top of physical processors
•
VP : set of instructions
• stopping the current VP and saving all the data needed to continue the execution at a later stage.
•
Process : actual software processor threads lightweight process = thread •
•