自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java多線程程序如何掌握基本語法

開發(fā) 后端
Java多線程程序在實際的操作中需要我們注意很多小語法的使用。下面我們就看看如何才能更好的使用相關的語法。希望大家有所收獲。

Java多線程程序需要我們具體的學習相關語法。其中我們要了解相關的語法究竟有什么。很多重要的問題成本都在細節(jié),基本的語法就是Java多線程程序的細節(jié)。希望大家有所收獲。

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

run()和start()

這兩個方法應該都比較熟悉,把需要并行處理的代碼放在run()方法中,start()方法啟動線程將自動調用 run()方法,這是由Java的內存機制規(guī)定的。并且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. }  

 

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

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

 

  1. Runnable r = new ThreadTest();  
  2. Thread t1 = new Thread(r);  
  3. Thread t2 = new Thread(r);  
  4. t1.start();  
  5. t2.start(); 

 

以上就是對Java多線程程序的詳細介紹。

【編輯推薦】

  1. Java多線程如何創(chuàng)建多個線程
  2. Java多線程優(yōu)化之偏向鎖原理分析
  3. Java多線程初學者指南系列教程
  4. 使用Java多線程實現任務分發(fā)
  5. Java多線程語句具體分類的詳細介紹
責任編輯:張浩 來源: TT網絡
點贊
收藏

51CTO技術棧公眾號