一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python多線程的線程如何安全實現

python多線程的線程如何安全實現

2021-12-20 00:02小妮淺淺 Python

在本篇文章里小編給大家整理了一篇關于python多線程的線程如何安全實現的內容,有興趣的朋友們可以學習參考下。

1、引言

當前隨著計算機硬件的快速發展,個人電腦上的 CPU 也是多核的,現在普遍的 CUP 核數都是 4 核或者 8 核的。因此,在編寫程序時,需要為了提高效率,充分發揮硬件的能力,則需要編寫并行的程序。Java 語言作為互聯網應用的主要語言,廣泛應用于企業應用程序的開發中,它也是支持多線程(Multithreading)的,但多線程雖好,卻對程序的編寫有較高的要求。

單線程可以正確運行的程序不代表在多線程場景下能夠正確運行,這里的正確性往往不容易被發現,它會在并發數達到一定量的時候才可能出現。這也是在測試環節不容易重現的原因。因此,多線程(并發)場景下,如何編寫線程安全(Thread-Safety)的程序,對于程序的正確和穩定運行有重要的意義。

下面將結合示例,談談如何在 Java 語言中,實現線程安全的程序。

為了給出感性的認識,下面給出一個線程不安全的示例,具體如下:

?
1
2
3
4
5
6
7
8
9
10
package com.example.learn;
public class Counter {
    private static int counter = 0;
    public static int getCount(){
        return counter;
    }
    public static  void add(){
        counter = counter + 1;
    }
}

2、synchronized方法

基于上述的示例,讓其變成線程安全的程序,最直接的就是在對應的方法上添加 synchronized 關鍵字,讓其成為同步的方法。它可以修飾一個類,一個方法和一個代碼塊。對上述計數程序進行修改,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
package com.example.learn;
public class Counter {
    private static int counter = 0;
    public static int getCount(){
        return counter;
    }
    public static synchronized void add(){
        counter = counter + 1;
    }
}

3、加鎖機制

另外一種常見的同步方法就是加鎖,比如 Java 中有一種重入鎖 ReentrantLock,它是一種遞歸無阻塞的同步機制,相對于 synchronized 來說,它可以提供更加強大和靈活的鎖機制,同時可以減少死鎖發生的概率。示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.example.learn;
import java.util.concurrent.locks.ReentrantLock;
public class Counter {
    private  static int counter = 0;
    private static final ReentrantLock lock = new ReentrantLock(true);
    public static int getCount(){
        return counter;
    }
    public static  void add(){
        lock.lock();
        try {
            counter = counter + 1;
        } finally {
            lock.unlock();
        }
    }
}

到此這篇關于python多線程的線程如何安全實現的文章就介紹到這了,更多相關python多線程的線程安全實現內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.py.cn/jishu/gaoji/32526.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 大乳女子一级毛片 | 免费看国产精品久久久久 | 女海盗斯蒂内塔的复仇2免费观看 | 青视频在线| 97精品国产自在现线免费 | 娇妻终于接受了3p的调教 | 乌克兰一级毛片9一18 | 亚洲福利 影院 | 亚洲欧美色综合图小说 | 91制片厂官网 | 双性鞭蒂软汁淋漓 | 国产人人艹 | 欧美洲大黑香蕉在线视频 | 免费看a片毛片 | 无码天堂亚洲国产AV久久 | 国产成人精品午夜视频' | 好大好爽好硬我要喷水了 | 国产高清视频网站 | 日本热妇 | 欧美一区欧美二区 | 欧美性xxxxxx爱 | 久久这里只精品国产99re66 | 亚洲午夜久久久久影院 | 2019年国产高清情侣视频 | 欧美人禽杂交狂配无删完整 | 日本高清中文字幕视频在线 | 精品无码一区在线观看 | 国产不卡视频 | 91庥豆果冻天美精东蜜桃传媒 | 色综色天天综合网 | 日韩一区视频在线 | 日韩欧美亚洲一区二区综合 | 摄像头东北对白清晰 | 201天天爱天天做 | 2019自拍偷拍视频 | 国产午夜精品不卡视频 | 67id人成观看免费 | 99热这里只有精品国产在热久久 | 91色视| 91在线免费看 | 我强进了老师身体在线观看 |