<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 內置函數 ```python dic = {'a':1,'c':3,'b':2} dic = sorted(dic.items()) # 內置函數sorted {k:v for k,v in dic} # 列表推導式 ``` ### 進程與線程 1. 線程是程序執行的最小單位,而進程是操作系統分配資源的最小單位; 2. 一個進程由一個或多個線程組成,線程是一個進程中代碼的不同執行路線; 3. 進程之間相互獨立,但同一進程下的各個線程之間共享程序的內存空間(包括代碼段、數據集、堆等)及一些進程級的資源,某個進程內的線程其他進程不可見; 4. 調度和切換:線程上下文切換比進程上下文切換要快的多; ***線程和進程都是一種抽象的概念,線程是一種比進程更小的抽象,線程和進程都可用于實現并發。*** ![](https://box.kancloud.cn/9a63afb253a0c4f9fae4f0d3704042a3_847x515.png) #### Thead - `join`:阻塞主線程 - `start`:啟動線程 - `setDaemon`:守護主線程,主線程結束,殺死子進程 - `theading.Lock()`:線程鎖 - `lock.acquire()`:獲取鎖 - `lock.release()`:釋放鎖 ### GIL全局解釋鎖 > ***Global Interpreter Lock*** > 為了更有效的利用多核處理器的性能,就出現了多線程的編程方式,而隨之帶來的就是線程之間數據一致性和狀態同步的困難.為了有效解決多份緩存之間的數據同步時,產生了GIL. > GIL是全局排他鎖.毫無疑問全局鎖的存在會對多線程的效率有不小影響。甚至就幾乎等于Python是個單線程的程序。 > 從`release GIL`到`acquire GIL`之間幾乎是沒有間隙的。所以當其他在其他核心上的線程被喚醒時,大部分情況下主線程已經又再一次獲取到GIL了。這個時候被喚醒執行的線程只能白白的浪費CPU時間,看著另一個線程拿著GIL歡快的執行著。然后達到切換時間后進入待調度狀態,再被喚醒,再等待,以此往復惡性循環。 Python GIL其實是功能和性能之間權衡后的產物,它尤其存在的合理性,也有較難改變的客觀因素。從本分的分析中,我們可以做以下一些簡單的總結: * 因為GIL的存在,只有IO Bound場景下得多線程會得到較好的性能 * 如果對并行計算性能較高的程序可以考慮把核心部分也成C模塊,或者索性用其他語言實現 * GIL在較長一段時間內將會繼續存在,但是會不斷對其進行改進 ### IPython缺省值 `datetime?` 顯示對象的信息 `datetime??` 顯示對象源碼 `%timeit np.dot(a, a)` 測量任何python語句
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看