麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

解析Java線程同步鎖的選擇方法

2019-11-26 16:06:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在需要線程同步的時(shí)候如何選擇合適的線程鎖?
例:選擇可以存入到常量池當(dāng)中的對(duì)象,String對(duì)象等  

復(fù)制代碼 代碼如下:

public class SyncTest
{
    private String name = "name";
public void method(String flag)
    {
        synchronized (name)
        {
            System.out.println(flag + ", invoke method ....");
            try
            {
                Thread.sleep(1000);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args)
    {
        SyncTest test1 = new SyncTest();

        SyncTest test2 = new SyncTest();

        MyThread1 myThread1 = new MyThread1();
        MyThread1 myThread2 = new MyThread1();
        myThread1.syncTest = test1;
        myThread2.syncTest = test1;

        MyThread1 myThread3 = new MyThread1();
        MyThread1 myThread4 = new MyThread1();
        myThread3.syncTest = test2;
        myThread4.syncTest = test2;

        myThread1.start();
        myThread2.start();
        myThread3.start();
        myThread4.start();

    }

}


線程類(lèi):
復(fù)制代碼 代碼如下:

public class MyThread1 extends Thread
{
    SyncTest syncTest;

    @Override
    public void run()
    {
        syncTest.method(this.getName());
    }
}

本來(lái)應(yīng)該是要實(shí)現(xiàn)線程thread1和thread2同步,線程thread3和thread4同步的,但結(jié)果呢?
卻是使得線程thread1、thread2、thread3、thread4同步了,很是郁悶。
我推薦選用的同步鎖對(duì)象:
復(fù)制代碼 代碼如下:

package com.rcx.thread;

public class SyncTest
{
    // 特殊的instance變量,用于充當(dāng)同步鎖的對(duì)象
    private byte[] lock = new byte[0];

    public void method(String flag)
    {
        synchronized (lock)
        {
            System.out.println(flag + ", invoke method f....");
            try
            {
                Thread.sleep(1000);
            }
            catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args)
    {
        SyncTest test1 = new SyncTest();

        SyncTest test2 = new SyncTest();

        MyThread1 myThread1 = new MyThread1();
        MyThread1 myThread2 = new MyThread1();
        myThread1.syncTest = test1;
        myThread2.syncTest = test1;

        MyThread1 myThread3 = new MyThread1();
        MyThread1 myThread4 = new MyThread1();
        myThread3.syncTest = test2;
        myThread4.syncTest = test2;

        myThread1.start();
        myThread2.start();
        myThread3.start();
        myThread4.start();

    }

}


推薦使用0長(zhǎng)度的byte數(shù)組充當(dāng)同步鎖對(duì)象,不會(huì)產(chǎn)生很詫異的錯(cuò)誤同時(shí)不會(huì)占用很大內(nèi)存。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产一区二区久久 | 成人短视频在线观看免费 | 羞羞视频2023| 中文字幕涩涩久久乱小说 | 久草在线新时代视觉 | 国产日本欧美在线观看 | 成人福利在线免费观看 | 56av国产精品久久久久久久 | 欧美成人一区二区视频 | 久久久久久久久久久久久久久伊免 | 九九热国产视频 | av在线一区二区三区四区 | 国产69精品久久久久9999不卡免费 | 美国黄色毛片女人性生活片 | 黄色99视频 | 一级α片免费看 | 91在线播放国产 | 久久99久久99免费视频 | 一级成人欧美一区在线观看 | 日本高清一级片 | 久久精品亚洲一区 | 国产午夜精品一区二区三区免费 | 久久国产精品久久久久久电车 | 高清在线国产 | 竹内纱里奈和大战黑人 | 国产精品一区免费在线观看 | 香蕉国产9 | 丰满年轻岳中文字幕一区二区 | 免费毛片随便看 | 午夜视频国产 | 午夜视频福利 | 久久看视频| 精品国产一级毛片 | 久久国产精品影视 | 国产在线精品91 | 成人性生活视频在线观看 | 91精品国产777在线观看 | 精品一区二区三区在线观看国产 | 在线成人免费网站 | 欧美亚洲国产一区二区三区 | 91精品国产777在线观看 |