摘要:開發(fā)中不可避免用到多線程情況,比如中常見的都是運用到多線程,多線程的根本目的是為了更快的執(zhí)行。其他常用到的多線程比如設(shè)計到大量操作用多線程可明顯提升效率。中最基礎(chǔ)的并發(fā)類就是是一個接口,只要實現(xiàn)實現(xiàn),重寫方法就可以實現(xiàn)多線程操作。
java開發(fā)中不可避免用到多線程情況,比如web中常見的Servlet、Struts2都是運用到多線程,多線程的根本目的是為了更快的執(zhí)行。其他常用到的多線程比如設(shè)計到大量I/O操作,用多線程可明顯提升效率。
java中最基礎(chǔ)的并發(fā)類就是Runnable.class,Runnable是一個接口,只要實現(xiàn)實現(xiàn)Runnables,重寫方法run() 就可以實現(xiàn)多線程操作。
舉個實現(xiàn)Runnable的例子:
public class LiftOff implements Runnable { protected int countDown = 10; // Default private static int taskCount = 0; private final int id = taskCount++; public LiftOff() {} public LiftOff(int countDown) { this.countDown = countDown; } public String status() { return "#" + id + "(" + (countDown > 0 ? countDown : "Liftoff!") + "), "; } public void run() { while(countDown-- > 0) { System.out.print(status()); Thread.yield(); } } } ///:~
public static void main(String[] args) { Thread t1 = new Thread(new LiftOff()); t1.start(); }
從這個例子中,可以看出在java中多線程的實現(xiàn)多線程是很簡單的事,但是多線程的學習是易懂難通,會遇見死鎖、邏輯混亂等各類問題,所以使用多線程必須慎之又慎。
Runnable之后有一個基礎(chǔ)的并發(fā)類就是Thread.class,Thread就是實現(xiàn)了Runnable的一個類,但是在Runnable的基礎(chǔ)上新增了一些方法包括:線程優(yōu)先級、后臺線程、分組、命名等,還是非常實用的。
因此我們一般使用多線程可以實現(xiàn)Runnable.class或者繼承Thread.class.一般使用Runnable即可這樣還可以繼承其他類
好了本次文章就到這來,簡單地說明了java多線程的一些知識,下次會關(guān)于多線程方法更深入的闡述。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67048.html
摘要:如何檢測死鎖由于死鎖極難通過人工的方式查出來,因此提供了命令來檢測某個進程中心線程的情況,并排查有沒有死鎖。線程持有的鎖,等待的鎖。避免出現(xiàn)死鎖,如果出現(xiàn)了死鎖,則可以使用命令查看線程是否有死鎖。 showImg(https://segmentfault.com/img/remote/1460000014936757); 前言 在 Java 的并發(fā)編程中,有一個問題需要特別注意,那就是...
摘要:在這個示例中我們使用了一個單線程線程池的。在延遲消逝后,任務(wù)將會并發(fā)執(zhí)行。這是并發(fā)系列教程的第一部分。第一部分線程和執(zhí)行器第二部分同步和鎖第三部分原子操作和 Java 8 并發(fā)教程:線程和執(zhí)行器 原文:Java 8 Concurrency Tutorial: Threads and Executors 譯者:BlankKelly 來源:Java8并發(fā)教程:Threads和Execut...
摘要:的缺點頻繁刷新主內(nèi)存中變量,可能會造成性能瓶頸不具備操作的原子性,不適合在對該變量的寫操作依賴于變量本身自己。 作者:畢來生微信:878799579 1. 什么是JUC? JUC全稱 java.util.concurrent 是在并發(fā)編程中很常用的實用工具類 2.Volatile關(guān)鍵字 1、如果一個變量被volatile關(guān)鍵字修飾,那么這個變量對所有線程都是可見的。2、如果某條線程修...
摘要:目標線程由運行狀態(tài)轉(zhuǎn)換為就緒狀態(tài),也就是讓出執(zhí)行權(quán)限,讓其他線程得以優(yōu)先執(zhí)行,但其他線程能否優(yōu)先執(zhí)行時未知的。函數(shù)的官方解釋是意思是使調(diào)用該函數(shù)的線程讓出執(zhí)行時間給其他已就緒狀態(tài)的線程。 線程允許在同一個進程中同時存在多個程序控制流,即通過線程可以實現(xiàn)同時處理多個任務(wù)的功能。線程會共享進程范圍內(nèi)的資源,例如內(nèi)存句柄和文件句柄,但每個線程都有各自的程序計數(shù)器、棧以及局部變量。 多線程的實...
閱讀 2416·2021-11-25 09:43
閱讀 1195·2021-09-07 10:16
閱讀 2603·2021-08-20 09:38
閱讀 2937·2019-08-30 15:55
閱讀 1449·2019-08-30 13:21
閱讀 883·2019-08-29 15:37
閱讀 1435·2019-08-27 10:56
閱讀 2093·2019-08-26 13:45