16 December, 2012

Synchronized Thread Example


In the below example the threads(t1,t2) both are accessing the common shared resource simultaneously and increasing the shared variable "count" in a sequential order ( i.e. count getting increase from 0 to 49 by t1 and then count getting increase from 50 to 99 by t2).

public class Resource implements Runnable {
    private static int count=0;
    @Override
    public synchronized  void run() {
        try {
            Thread.sleep(1000);
            for (int i = 0; i < 100; i++) {
                System.out.println("count="+count+++"--->"+Thread.currentThread().getName());
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

public class Process {
    public static void main(String[] args){
        Resource sharedResource = new Resource();
        Thread t1 = new Thread(sharedResource);
        Thread t2 = new Thread(sharedResource );
        t1.start();
        t2.start();
    }
}
----------------------------------
output
---------------------------------
count=0--->Thread-0
count=1--->Thread-0
count=2--->Thread-0
count=3--->Thread-0
count=4--->Thread-0
count=5--->Thread-0
count=6--->Thread-0
count=7--->Thread-0
count=8--->Thread-0
count=9--->Thread-0
count=10--->Thread-0
count=11--->Thread-0
count=12--->Thread-0
count=13--->Thread-0
count=14--->Thread-0
count=15--->Thread-0
count=16--->Thread-0
count=17--->Thread-0
count=18--->Thread-0
count=19--->Thread-0
count=20--->Thread-0
count=21--->Thread-0
count=22--->Thread-0
count=23--->Thread-0
count=24--->Thread-0
count=25--->Thread-0
count=26--->Thread-0
count=27--->Thread-0
count=28--->Thread-0
count=29--->Thread-0
count=30--->Thread-0
count=31--->Thread-0
count=32--->Thread-0
count=33--->Thread-0
count=34--->Thread-0
count=35--->Thread-0
count=36--->Thread-0
count=37--->Thread-0
count=38--->Thread-0
count=39--->Thread-0
count=40--->Thread-0
count=41--->Thread-0
count=42--->Thread-0
count=43--->Thread-0
count=44--->Thread-0
count=45--->Thread-0
count=46--->Thread-0
count=47--->Thread-0
count=48--->Thread-0
count=49--->Thread-0
count=50--->Thread-0
count=51--->Thread-0
count=52--->Thread-0
count=53--->Thread-0
count=54--->Thread-0
count=55--->Thread-0
count=56--->Thread-0
count=57--->Thread-0
count=58--->Thread-0
count=59--->Thread-0
count=60--->Thread-0
count=61--->Thread-0
count=62--->Thread-0
count=63--->Thread-0
count=64--->Thread-0
count=65--->Thread-0
count=66--->Thread-0
count=67--->Thread-0
count=68--->Thread-0
count=69--->Thread-0
count=70--->Thread-0
count=71--->Thread-0
count=72--->Thread-0
count=73--->Thread-0
count=74--->Thread-0
count=75--->Thread-0
count=76--->Thread-0
count=77--->Thread-0
count=78--->Thread-0
count=79--->Thread-0
count=80--->Thread-0
count=81--->Thread-0
count=82--->Thread-0
count=83--->Thread-0
count=84--->Thread-0
count=85--->Thread-0
count=86--->Thread-0
count=87--->Thread-0
count=88--->Thread-0
count=89--->Thread-0
count=90--->Thread-0
count=91--->Thread-0
count=92--->Thread-0
count=93--->Thread-0
count=94--->Thread-0
count=95--->Thread-0
count=96--->Thread-0
count=97--->Thread-0
count=98--->Thread-0
count=99--->Thread-0
count=100--->Thread-1
count=101--->Thread-1
count=102--->Thread-1
count=103--->Thread-1
count=104--->Thread-1
count=105--->Thread-1
count=106--->Thread-1
count=107--->Thread-1
count=108--->Thread-1
count=109--->Thread-1
count=110--->Thread-1
count=111--->Thread-1
count=112--->Thread-1
count=113--->Thread-1
count=114--->Thread-1
count=115--->Thread-1
count=116--->Thread-1
count=117--->Thread-1
count=118--->Thread-1
count=119--->Thread-1
count=120--->Thread-1
count=121--->Thread-1
count=122--->Thread-1
count=123--->Thread-1
count=124--->Thread-1
count=125--->Thread-1
count=126--->Thread-1
count=127--->Thread-1
count=128--->Thread-1
count=129--->Thread-1
count=130--->Thread-1
count=131--->Thread-1
count=132--->Thread-1
count=133--->Thread-1
count=134--->Thread-1
count=135--->Thread-1
count=136--->Thread-1
count=137--->Thread-1
count=138--->Thread-1
count=139--->Thread-1
count=140--->Thread-1
count=141--->Thread-1
count=142--->Thread-1
count=143--->Thread-1
count=144--->Thread-1
count=145--->Thread-1
count=146--->Thread-1
count=147--->Thread-1
count=148--->Thread-1
count=149--->Thread-1
count=150--->Thread-1
count=151--->Thread-1
count=152--->Thread-1
count=153--->Thread-1
count=154--->Thread-1
count=155--->Thread-1
count=156--->Thread-1
count=157--->Thread-1
count=158--->Thread-1
count=159--->Thread-1
count=160--->Thread-1
count=161--->Thread-1
count=162--->Thread-1
count=163--->Thread-1
count=164--->Thread-1
count=165--->Thread-1
count=166--->Thread-1
count=167--->Thread-1
count=168--->Thread-1
count=169--->Thread-1
count=170--->Thread-1
count=171--->Thread-1
count=172--->Thread-1
count=173--->Thread-1
count=174--->Thread-1
count=175--->Thread-1
count=176--->Thread-1
count=177--->Thread-1
count=178--->Thread-1
count=179--->Thread-1
count=180--->Thread-1
count=181--->Thread-1
count=182--->Thread-1
count=183--->Thread-1
count=184--->Thread-1
count=185--->Thread-1
count=186--->Thread-1
count=187--->Thread-1
count=188--->Thread-1
count=189--->Thread-1
count=190--->Thread-1
count=191--->Thread-1
count=192--->Thread-1
count=193--->Thread-1
count=194--->Thread-1
count=195--->Thread-1
count=196--->Thread-1
count=197--->Thread-1
count=198--->Thread-1
count=199--->Thread-1

No comments:

Post a Comment