<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### Vars [Vars](http://clojure.org/vars) 是一種可以有一個被所有線程共享的root binding并且每個線程線程還能有自己線程本地(thread-local)的值的一種引用類型。 下面的語法創建一個Var并且給它一個root binding: ``` (def <em>name</em> <em>value</em>) ``` 你可以不給它一個值的。如果你沒有給它一個值,那么我們說這個Var是 "unbound". 同樣的語法可以用來修改一個Var的root binding。 有兩種方法可以創建一個已經存在的Var的線程本地binding(thread-local-binding): ``` (binding [<em>name</em> <em>expression</em>] <em>body</em>) (set! <em>name</em> <em>expression</em>) ; inside a binding that bound the same name ``` 關于binding宏的用法我們前面已經介紹過了. 下面的例子演示把它和 `set!` 一起使用. 用set!來修改一個由binding bind的Var的線程本地的值。 ``` (def v 1) (defn change-it [] (println "2) v =" v) ; -> 1 (def v 2) ; changes root value (println "3) v =" v) ; -> 2 (binding [v 3] ; binds a thread-local value (println "4) v =" v) ; -> 3 (set! v 4) ; changes thread-local value (println "5) v =" v)) ; -> 4 (println "6) v =" v)) ; thread-local value is gone now -> 2 (println "1) v =" v) ; -> 1 (let [thread (Thread. #(change-it))] (.start thread) (.join thread)) ; wait for thread to finish (println "7) v =" v) ; -> 2 ``` 我們一般不鼓勵使用 Vars, 因為線程之間對于同一個Var的修改沒有做很好的協調,比如線程A在使用一個Var的root值,然后才發現,在它使用這個值的時候,已經有一個線程B在修改這個值了。
                  <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>

                              哎呀哎呀视频在线观看