<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 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

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人