最近參加公司的乙個hackson比賽的時候,需要當前執行緒阻塞,並開啟乙個新的執行緒執行任務,任務執行完成後,再返回結果。執行緒相關的東西,用的都比較膚淺,所以當時只能在網上找了一堆文章,發現很多講得比較繁瑣,感覺如果單純的實現該需求的話,用本文中的兩種方式是最簡單的了。
實現方式一,也是最簡單的就是使用thread的join方法,**如下:
package dingbin.thread;
public class jointest catch (interruptedexception e) }};
public static void main(string args) catch (interruptedexception e)
system.out.println("thread執行緒的工作結束,主線程繼續工作");
}}
我們建立執行緒後,只需要執行該執行緒的join方法,當前執行緒就會阻塞,直到執行緒執行結束後,主線程才會繼續執行。這種操作是阻塞的最簡單實現了,當然了還有另外一種實現方式。
**如下:
package dingbin.thread;
public class waitnotifytest catch (interruptedexception e) }}
};public static void main(string args) catch (interruptedexception e)
system.out.println("主線程阻塞結束,開始執行");}}
}
該方式使用wait和notify方法實現阻塞。以上就是實現阻塞的兩種方式,講得都很膚淺,後期會加強這塊的學習,希望後面會寫出好得多的文章。 JAVA多執行緒實現的兩種方式
繼承thread類的方法儘管被我列為一種多執行緒實現方式,但thread本質上也是實現了runnable介面的乙個例項,它代表乙個執行緒的例項,並且,啟動執行緒的唯一方法就是通過thread類的start 例項方法。start 方法是乙個native方法,它將啟動乙個新執行緒,並執行run 方法。這...
實現執行緒的兩種方式
起初,作業系統中只有程序的概念,人們那時候對併發沒有太高的要求。後來有些人想提高程式的井發,這才有了執行緒這一新生事物。任何新生事物在誕生之初都會被小心謹慎地對待,人們提出執行緒的需求時,作業系統也抱著 圍觀 的心態不敢輕舉妄動,只能坐看其發展,真正待需求明朗時才會在作業系統一級來實現。想想也是,如...
執行緒實現的兩種方式
1.程序和執行緒的定義 1.1 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位.1.2 執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資...