多執行緒基礎(實際開發例項)

2021-08-15 23:01:08 字數 1308 閱讀 7538

執行緒:

多執行緒的好處: 多執行緒解決了在乙個程序中同時可以執行多個任務**的問題。

自定義執行緒的建立方式:

方式一:繼承thread.

1. 自定義乙個類繼承thread類。

2. 重寫thread的run方法,把自定義執行緒的任務**定義在run方法上。

3. 建立thread子類的物件,並且呼叫start方法啟動乙個執行緒。

方式二: 實現runnable介面。

1. 自定義乙個類實現runnable介面。

2. 實現runnable介面中的run方法,把自定義執行緒的任務**定義在run方法上。

3. 建立runable實現類 的物件。

4. 建立thread物件,並且把runnable實現類的物件作為引數傳遞。

5. 呼叫thread物件的start方法開啟執行緒。

執行緒安全 問題的解決方案:

執行緒安全問題出現 的根本原因:

1. 必須要存在兩個或者兩個以上的執行緒共享著乙個資源。

2. 操作共享資源的**必須有兩句或者兩句以上。

解決方案:

1. 同步**塊

synchronized(鎖)

2. 同步函式。

修飾符 synchronized 返回值型別   函式名(形參列表..)

注意:1. 同步**塊的鎖可以是任意的物件。 同步函式的鎖是固定 的,非靜態函式的鎖物件是this物件。 靜態函式的鎖物件是class物件。

2. 鎖物件必須是多執行緒共享的物件,否則鎖不住。

3. 在同步**塊或者是同步函式中呼叫sleep方法是不會釋放鎖物件的,如果是呼叫了wait方法是會釋放鎖物件的。

// 1. 自定義乙個類sendmessagethreadforregistredpacket 實現runnable介面。   

@component("sendmessagethreadforregistredpacket")

@scope("prototype")

public class sendmessagethreadforregistredpacket implements runnable

}else

}} catch (exception e)

return map;

//獲取spring中的bean  此類在建立多執行緒時會用到
@component

@override

}public static t getbean(string name,classaclass)

}

java基礎 多執行緒例項

乙個簡單的買票多執行緒程式 public class saleticket2 implements runnable catch interruptedexception e if ticket 0 public static void main string args 把同步加到方法上 publi...

Python 多執行緒實際應用

import threading from basesite.backend.strategy.websocket break double position strategy import breakstrategy from basesite.utils.okexutils.okexwebsoc...

多執行緒例項

include include include include define max 10 pthread t thread 2 pthread mutex t mut int number 0,i void thread1 printf thread1 主函式在等我完成任務嗎?n pthread ...