java多线程同步代码块

同步代码块java


对象如同锁。持有锁的线程能够在同步中执行。安全

没有持有锁的线程即便获取cpu的执行权。也进不去。由于没有获取锁。多线程



火车上的卫生间 --经典ide


同步的前提:线程

1.必需要有2个或者2个以上的线程。对象

2.必须是多个线程使用同一个锁。资源


必须保证同步中只能有一个线程在运行。get



好处:解决了多线程的安全问题。同步

弊端:多个线程须要判断锁。较为消耗资源。it

/*
同步代码块
对象如同锁。持有锁的线程能够在同步中执行。
没有持有锁的线程即便获取cpu的执行权。也进不去。由于没有获取锁。
火车上的卫生间 --经典
同步的前提:
1.必需要有2个或者2个以上的线程。
2.必须是多个线程使用同一个锁。
必须保证同步中只能有一个线程在运行。
好处:解决了多线程的安全问题。
弊端:多个线程须要判断锁。较为消耗资源。
*/
class Ticketest implements Runnable
{
    private int tick = 100;
    Object obj = new Object();
    public void run()
    {
        while(true)
        {
            synchronized(obj)
            {
                if(tick>0)
                {
                    try
                    {
                        Thread.sleep(10);
                    }
                    catch (Exception e)
                    {
                    }
                    System.out.println(Thread.currentThread().getName()+"....tick="+tick--);
                }
            }
        }
    }
}
class Test_11_09
{
    public static void main(String[] args)
    {
        System.out.println("Hello Wolrd");
    }
}
相关文章
相关标签/搜索