Thread類及使用
Thread類
- 自定義執行緒類繼承Thread類
- 重寫run()方法,編寫執行緒執行體
- 建立執行緒物件,呼叫start()方法啟動執行緒
參考程式碼
//建立執行緒方式一:繼承Thread類,重寫run()方法,呼叫start開啟執行緒
//總結:注意,執行緒開啟不一定立即執行,由CPU排程執行
public class ArrayDemo10 extends Thread{
@Override
public void run() {
//run方法執行緒體
for (int i = 0; i < 200; i++) {
System.out.println("run方法" + i);
}
}
public static void main(String[] args) {
//main執行緒,主執行緒
//建立一個執行緒物件
ArrayDemo10 ad = new ArrayDemo10();
//呼叫start()方法開啟執行緒
ad.start();
for (int i = 0; i < 1000; i++){
System.out.println("main方法" + i);
}
}
}
例項:網圖下載
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URL;
//需要架包:commons-io.jar
//練習Thread,實現多執行緒同步下載圖片
public class Demo02 extends Thread { //繼承Thread類
private String url; //網路圖片地址
private String name; //儲存的檔名
//構造器
public Demo02(String url, String name) {
this.url = url;
this.name = name;
}
//重寫run方法
@Override
public void run() {
WebDownloader webDownloader = new WebDownloader();
webDownloader.downloader(url, name);
System.out.println("下載了檔名為:" + name);
}
public static void main(String[] args) {
Demo02 d1 = new Demo02("https://img-home.csdnimg.cn/images/20201001020546.jpg", "1.jpg");
Demo02 d2 = new Demo02("https://img-home.csdnimg.cn/images/20201001020546.jpg", "2.jpg");
Demo02 d3 = new Demo02("https://img-home.csdnimg.cn/images/20201001020546.jpg", "3.jpg");
d1.start();
d2.start();
d3.start();
}
}
//下載器
class WebDownloader {
//下載方法
public void downloader(String url, String name) {
try {
FileUtils.copyURLToFile(new URL(url),new File(name));
} catch (IOException e) {
e.printStackTrace();
System.out.println("IO異常,downloader方法出現問題");
}
}
}
相關文章
- Thread類thread
- Java多執行緒Thread類使用Java執行緒thread
- java併發程式設計:Thread類的使用Java程式設計thread
- java多執行緒之Thread類Java執行緒thread
- Java之Thread類的常用方法 .sleep()Javathread
- Thread類實現買電影案例thread
- Java多執行緒(二):Thread類Java執行緒thread
- 使用Thread類和Runnable介面實現多執行緒的區別thread執行緒
- 多執行緒系列(二)之Thread類執行緒thread
- RT-Thread Studio使用教程thread
- Java Thread 類相關的幾個核心方法Javathread
- python多執行緒之從Thread類繼承Python執行緒thread繼承
- Threadthread
- Java中陣列及相關類的使用Java陣列
- qt -- QString類及常用函式功能的使用QT函式
- CSS選擇器種類及使用方法CSS
- thread.Interrupt()與thread.Abort()thread
- RT-Thread 使用env修改Finsh 串列埠thread串列埠
- @Java | Thread & synchronized – [ 執行緒同步鎖 基本使用]Javathreadsynchronized執行緒
- Hello,Threadthread
- Thread jointhread
- Could not obtain transaction-synchronized Session for current thread原因及解決方案AIsynchronizedSessionthread
- Hystrix semaphore和thread隔離策略的區別及配置參thread
- tomcat one connection one thread one request one threadTomcatthread
- Java之實現多執行緒的方式一 :繼承Thread類Java執行緒繼承thread
- Thread執行緒的基礎知識及常見疑惑點thread執行緒
- RT-Thread 元件 FinSH 使用時遇到的問題thread元件
- NUC980 執行 RT-Thread 時使用 GPIOthread
- 在VScode 中使用RT-Thread Studio初體驗VSCodethread
- thread local in pythonthreadPython
- Thread.jointhread
- Thread知識thread
- 07 併發工具類CountDownLatch、CyclicBarrier、Semaphore使用及原始碼分析CountDownLatch原始碼
- snownlp類庫(中文情感分析)原始碼註釋及使用原始碼
- 四,Java運算子詳細分類及使用方法介紹Java
- Hystrix Thread Pool 解析thread
- rt-thread bootloadthreadboot
- Thread(執行緒)thread執行緒