<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            java語言

            淺談如何使用java多線程

            時間:2025-05-07 10:47:00 java語言 我要投稿
            • 相關推薦

            淺談如何使用java多線程

              Java多線程程序中經常用到的方法有以下幾個:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),還有一個重要的關鍵字 synchronized。下面分別對這些方法進行解釋:

              一、run()和start()

              這兩個方法應該都比較熟悉,把需要并行處理的代碼放在run()方法中,start()方法啟動線程將自動調用 run()方法,這是由Java的內存機制規定的。并且run()方法必須是public訪問權限,返回值類型為void。

              二、關鍵字Synchronized

              這個關鍵字用于保護共享數據,當然前提是要分清哪些數據是共享數據。每個對象都有一個鎖標志,當一個線程訪問該對象時,被Synchronized修飾的數據將被“上鎖”,阻止其他線程訪問。當前線程訪問完這部分數據后釋放鎖標志,其他線程就可以訪問了。

              1.public ThreadTest implements Runnable

              2.{

              3.public synchronized void run(){

              4.for(int i=0;i<10;i++)

              5.{

              6.System.out.println(" " + i);

              7.}

              8.}

              9.public static void main(String[] args)

              10.{

              11.Runnable r1 = new ThreadTest();

              12.Runnable r2 = new ThreadTest();

              13.Thread t1 = new Thread(r1);

              14.Thread t2 = new Thread(r2);

              15.t1.start();

              16.t2.start();

              17.}

              18.}

              以上這段程序中的 i 變量并不是共享數據,也就是這里的Synchronized關鍵字并未起作用。因為t1,t2兩個線程是兩個對象(r1,r2)的線程。不同的對象其數據是不同的,所以r1和r2兩個對象的i變量是并不是共享數據。

              當把代碼改成如下:Synchronized關鍵字才會起作用

              19.Runnable r = new ThreadTest();

              20.Thread t1 = new Thread(r);

              21.Thread t2 = new Thread(r);

              22.t1.start();

              23.t2.start();

            【淺談如何使用java多線程】相關文章:

            如何使用java多線程08-23

            Java使用多線程的優勢07-10

            Java多線程基本使用11-08

            Java多線程的基本使用08-03

            如何使用java10-14

            java的多線程09-09

            java多線程08-31

            java語言的多線程08-29

            java多線程介紹08-23

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看