91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python阻塞調度的使用方法

發布時間:2021-04-30 09:35:30 來源:億速云 閱讀:207 作者:小新 欄目:編程語言

這篇文章主要介紹python阻塞調度的使用方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python有哪些常用庫

python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

1、說明

標準調度是python使用軟件時鐘調度線程,有時python的線程會自動阻塞,例如raw_input(),sleep()等功能,此時python使用阻塞調度。

(1)主線程調用sleep(1)后,調用Py_BEGIN_ALLOW_THREADS立即釋放GIL,然后調用操作系統的sleep操作。此時,主線程由操作系統自動管理。

(2)子線程獲得GIL。此時,主線程和子線程可以同時由操作系統安排。操作系統在執行子線程一段時間后懸掛,安排主線程,在主線程sleep結束前懸掛主線程,繼續喚醒子線程執行。

(3)當主線程結束時,操作系統喚醒主線程。主線程調用Py_END_ALLOW_THREADS再次申請GIL,重新進入python標準調度過程。

2、實例

[ceval.h]
#define Py_BEGIN_ALLOW_THREADS { \
            PyThreadState *_save; \
            _save = PyEval_SaveThread();
#define Py_END_ALLOW_THREADS    PyEval_RestoreThread(_save); \
         }
 
[ceval.c]
PyThreadState* PyEval_SaveThread(void)
{
    PyThreadState *tstate = PyThreadState_Swap(NULL);
    if (interpreter_lock)
        PyThread_release_lock(interpreter_lock);
    return tstate;
}
 
void PyEval_RestoreThread(PyThreadState *tstate)
{
    if (interpreter_lock) {
        int err = errno;
        PyThread_acquire_lock(interpreter_lock, 1);
        errno = err;
    }
    PyThreadState_Swap(tstate);
}

以上是“python阻塞調度的使用方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溧水县| 乡城县| 马边| 历史| 台安县| 巴楚县| 信宜市| 永城市| 鄂托克旗| 林口县| 水富县| 涡阳县| 佛坪县| 木兰县| 阆中市| 清徐县| 九龙县| 独山县| 庆阳市| 伊金霍洛旗| 青州市| 珠海市| 洪江市| 墨竹工卡县| 秦皇岛市| 津南区| 大宁县| 沈阳市| 和硕县| 屯留县| 大渡口区| 名山县| 横峰县| 郸城县| 邯郸县| 资兴市| 安福县| 军事| 栾川县| 吴江市| 齐河县|