Java向Runnable線程傳遞參數(shù)方法實(shí)例解析
java Runnable接口:是一個(gè)接口,它里面只有一個(gè)run()方法,沒有start()方法,繼2113承Runnable并實(shí)現(xiàn)這個(gè)方法就可以實(shí)現(xiàn)多線程了,但是5261這個(gè)run()方法不能自4102己調(diào)用,必須由系統(tǒng)來調(diào)用。
向線程中傳遞數(shù)據(jù)的三種方法:
一、通過構(gòu)造函數(shù)傳遞參數(shù)
public class MyThread1 extends Thread { private String name; public MyThread1(String name) { this.name = name; } public void run() { System.out.println("hello " + name); } public static void main(String[] args) { Thread thread = new MyThread1("world"); thread.start(); } }
二、通過變量和方法傳遞數(shù)據(jù)
public class MyThread2 implements Runnable { private String name; public void setName(String name) { this.name = name; } public void run() { System.out.println("hello " + name); } public static void main(String[] args) { MyThread2 myThread = new MyThread2(); myThread.setName("world"); Thread thread = new Thread(myThread); thread.start(); } }
三、通過回調(diào)函數(shù)傳遞數(shù)據(jù)
class Data { public int value = 0; } class Work { public void process(Data data, Integer numbers) { for (int n : numbers) { data.value += n; } } } public class MyThread3 extends Thread { private Work work; public MyThread3(Work work) { this.work = work; } public void run() { java.util.Random random = new java.util.Random(); Data data = new Data(); int n1 = random.nextInt(1000); int n2 = random.nextInt(2000); int n3 = random.nextInt(3000); work.process(data, n1, n2, n3); // 使用回調(diào)函數(shù) System.out.println(String.valueOf(n1) + "+" + String.valueOf(n2) + "+" + String.valueOf(n3) + "=" + data.value); } public static void main(String[] args) { Thread thread = new MyThread3(new Work()); thread.start(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?中使用@KafkaListener并發(fā)批量接收消息的完整代碼
kakfa是我們在項(xiàng)目開發(fā)中經(jīng)常使用的消息中間件。由于它的寫性能非常高,因此,經(jīng)常會碰到讀取Kafka消息隊(duì)列時(shí)擁堵的情況,這篇文章主要介紹了Spring?Boot?中使用@KafkaListener并發(fā)批量接收消息,需要的朋友可以參考下2023-02-02基于XML的MyBatis的環(huán)境搭建過程詳解(IDEA)
這篇文章主要介紹了基于XML的MyBatis的環(huán)境搭建過程詳解(IDEA),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳
這篇文章主要介紹了springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08Spring Boot 實(shí)例化bean如何選擇代理方式
這篇文章主要為大家介紹了Spring Boot實(shí)例化bean如何選擇代理方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Redis中高并發(fā)讀寫性能的深度解析與優(yōu)化
Redis 作為一款高性能的內(nèi)存數(shù)據(jù)庫,廣泛應(yīng)用于緩存、消息隊(duì)列、實(shí)時(shí)統(tǒng)計(jì)等場景,本文將深入探討 Redis 的讀寫并發(fā)能力,感興趣的小伙伴可以了解下2025-03-03ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作
這篇文章主要為大家介紹了ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01JAVA 多線程之信號量(Semaphore)實(shí)例詳解
這篇文章主要介紹了JAVA 多線程之信號量(Semaphore)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01