欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中線程用法總結

 更新時間:2015年06月08日 15:12:25   作者:liuzx32  
這篇文章主要介紹了Java中線程用法,實例總結了java中線程的常見使用技巧,需要的朋友可以參考下

本文實例總結了Java中線程用法。分享給大家供大家參考。具體分析如下:

1.線程是基本調度單元。共享進程的資源,如內存和文件句柄。但有自己的pc(程序計數器),stack(線程棧)及本地變量

2.線程的優(yōu)勢:

a) 充分利用多處理器
b) 可以簡化模型。特定任務給特定線程。如servlets及rmi等框架。
c) 對異步事件的簡單處理。如socket,nio使用更復雜。而現(xiàn)在的操作系統(tǒng)支持更大數量的線程。
d) 界面的更佳響應

3.內部鎖:synchronized塊?;コ???芍厝耄╮eentrancy),這樣的設計可以避免死鎖

4.內存可見性:因為編譯器的優(yōu)化,線程并不和你看到的一樣。

public class NoVisibility {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread {
 public void run() {
  while (!ready)
   Thread.yield();
   System.out.println(number);
  }
}
public static void main(String[] args) {
 new ReaderThread().start();
 number = 42;
 ready=true;
}
}

可能打印0,或者一直循環(huán)。因為重排序了

5.volatile:可以解決內存可見性,對syncronized性能更佳,但僅此而已,如不能保證a++的原子性

6.溢出(escape):不要在構造函數中將this指針溢出。不要將內部變量溢出,如:

class Test {
private String[] list = new String[] {};
public String[] getList() {return list;}
}

7.線程封閉:把對象封閉在一個線程中,無論對象是否是線程安全的,都能保證線程安全

a) statck限制。即只有本地變量能訪問該對象。
b)ThreadLocal。

8.不可變對象。一定是線程安全的。不可變對象必須滿足:

a) 狀態(tài)不能在創(chuàng)建后修改。
b) 所以的域都是final
c) 正確創(chuàng)建對象,沒有this指針溢出

9.安全發(fā)布

a) 通過static初始化對象
b) 使用volatile或AtomicReference
c) 將引用存儲于正確創(chuàng)建的對象的final域
d) 使用鎖

希望本文所述對大家的java程序設計有所幫助。

相關文章

  • Spring Boot實戰(zhàn)之netty-socketio實現(xiàn)簡單聊天室(給指定用戶推送消息)

    Spring Boot實戰(zhàn)之netty-socketio實現(xiàn)簡單聊天室(給指定用戶推送消息)

    本篇文章主要介紹了Spring Boot實戰(zhàn)之netty-socketio實現(xiàn)簡單聊天室(給指定用戶推送消息),具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • Java中Volatile關鍵字詳解及代碼示例

    Java中Volatile關鍵字詳解及代碼示例

    這篇文章主要介紹了Java中Volatile關鍵字詳解及代碼示例,分為兩個部分,第一部分介紹了Volatile關鍵字的基本概念等內容,第二部分分享了實例代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot后端接口的實現(xiàn)(看這一篇就夠了)

    SpringBoot后端接口的實現(xiàn)(看這一篇就夠了)

    這篇文章主要介紹了SpringBoot后端接口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 深入理解Java設計模式之職責鏈模式

    深入理解Java設計模式之職責鏈模式

    這篇文章主要介紹了JAVA設計模式之職責鏈模式的的相關資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解
    2021-11-11
  • Kafka日志清理實現(xiàn)詳細過程講解

    Kafka日志清理實現(xiàn)詳細過程講解

    這篇文章主要為大家介紹了Kafka日志清理實現(xiàn)詳細過程講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • RestTemplate get請求攜帶headers自動拼接參數方式

    RestTemplate get請求攜帶headers自動拼接參數方式

    這篇文章主要介紹了RestTemplate get請求攜帶headers自動拼接參數方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java字節(jié)碼增強技術知識點詳解

    Java字節(jié)碼增強技術知識點詳解

    在本篇文章里小編給大家整理的是一篇關于Java字節(jié)碼增強技術知識點詳解內容,有興趣的朋友可以跟著學習下。
    2021-08-08
  • SpringBoot接入釘釘自定義機器人預警通知

    SpringBoot接入釘釘自定義機器人預警通知

    本文主要介紹了SpringBoot接入釘釘自定義機器人預警通知,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 詳談java命令的本質邏輯揭秘

    詳談java命令的本質邏輯揭秘

    一個簡單的java命令背后究竟做了些什么事情,很多朋友提出幾個問題,下面帶領大家一起學習Java命令的本質邏輯問題,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • SpringAop中的Advice通知實例

    SpringAop中的Advice通知實例

    這篇文章主要介紹了SpringAop中的Advice通知詳解,Spring的AOP功能中一個關鍵概念是通知Advice與切點Pointcut表達式相關聯(lián)在特定節(jié)點織入一些邏輯,Spring提供了五種類型的通知,需要的朋友可以參考下
    2023-09-09

最新評論