Contenu connexe
Similaire à Programs on multithreading (20)
Plus de Lakshmi Sarvani Videla (20)
Programs on multithreading
- 1. Programs on multithreading
yield()
package package2;
classMyThread extendsThread
{
publicvoidrun()
{
for(inti=1;i<=10;i++)
{
Thread.yield(); //thisthreadpausesandgivesachance to mainthreadto execute
System.out.println("child");
}
}
}
publicclassThreadDemo
{
publicstaticvoidmain(Stringargs[])
{
MyThread ob= newMyThread();
ob.start();
for(inti=1;i<=10;i++)
{
System.out.println("main");
}
}
}
Join()
package package2;
classMyThread2 extendsThread
{
publicvoidrun()
{
for(inti=1;i<=10;i++)
{
System.out.println("child2");
}
}
}
publicclassThreadDemo1{
publicstaticvoidmain(String[] args) throwsInterruptedException
{
// TODO Auto-generatedmethodstub
- 2. MyThread2 ob = newMyThread2();
ob.start();
for(inti=1;i<=10;i++)
{
ob.join(); //here mainthreadwaitsuntil childcontinues
System.out.println("main1");
}
}
}
Sleep()
package package2;
publicclass ThreadDemo6{
publicstaticvoidmain(String[] args) throws InterruptedException
{
// TODO Auto-generatedmethodstub
for(inti=0;i<=10;i++)
{
System.out.println("Slide -"+i);
Thread.sleep(5000);
}
}
}
package package2;
classMyThread3 extendsThread
{
publicvoidrun()ThreadPriorities
{
for(inti=1;i<=5;i++)
{
System.out.println("Name of thread="+Thread.currentThread().getName()+"number="+i);
}
}
}
classMyThread4 extendsThread
{
publicvoidrun()
{
for(inti=1;i<=5;i++)
- 3. {
System.out.println("Name of thread="+Thread.currentThread().getName()+"number="+i);
}
}
}
publicclassThreadPriorities
{
publicstaticvoidmain(String[] args)
{
// TODO Auto-generatedmethodstub
MyThread3 ob1 = newMyThread3();
ob1.setPriority(1);
ob1.start();
MyThread4 ob2 = newMyThread4();
ob2.setPriority(10);
ob2.start();
}
}
Synchronizationin Java
Synchronizationinjavaisthe capabilitytocontrol the accessof multiple threadstoanysharedresource.
Java Synchronizationisbetteroptionwhere we wanttoallow onlyone threadtoaccess the shared
resource.
The synchronizationismainlyusedto
To preventthreadinterference.
To preventconsistencyproblem.
There are twotypesof synchronization
ProcessSynchronization
ThreadSynchronization
Here,we will discussonlythreadsynchronization. Below isanexample of synchronizedmethoddisplay()
Example:
package package2;
classStu
{
publicsynchronizedvoiddisplay()
{
for(inti=0;i<10;i++)
System.out.println("Name of thread"+Thread.currentThread().getName());
}
}
classMyThread5 extendsThread
{
Stu ob;
MyThread5(Stuob)
{
this.ob=ob;
}