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");
    }
}
相關文章
相關標籤/搜索