Java向Runnable線(xiàn)程傳遞參數(shù)方法實(shí)例解析
java Runnable接口:是一個(gè)接口,它里面只有一個(gè)run()方法,沒(méi)有start()方法,繼2113承Runnable并實(shí)現(xiàn)這個(gè)方法就可以實(shí)現(xiàn)多線(xiàn)程了,但是5261這個(gè)run()方法不能自4102己調(diào)用,必須由系統(tǒng)來(lái)調(diào)用。
向線(xiàn)程中傳遞數(shù)據(jù)的三種方法:
一、通過(guò)構(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(); } }
二、通過(guò)變量和方法傳遞數(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(); } }
三、通過(guò)回調(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(); } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?中使用@KafkaListener并發(fā)批量接收消息的完整代碼
kakfa是我們?cè)陧?xiàng)目開(kāi)發(fā)中經(jīng)常使用的消息中間件。由于它的寫(xiě)性能非常高,因此,經(jīng)常會(huì)碰到讀取Kafka消息隊(duì)列時(shí)擁堵的情況,這篇文章主要介紹了Spring?Boot?中使用@KafkaListener并發(fā)批量接收消息,需要的朋友可以參考下2023-02-02基于XML的MyBatis的環(huán)境搭建過(guò)程詳解(IDEA)
這篇文章主要介紹了基于XML的MyBatis的環(huán)境搭建過(guò)程詳解(IDEA),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳
這篇文章主要介紹了springMVC+jersey實(shí)現(xiàn)跨服務(wù)器文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08java方法重寫(xiě)時(shí)需要注意的問(wèn)題
大家好,本篇文章主要講的是java方法重寫(xiě)時(shí)需要注意的問(wèn)題,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽2021-12-12Spring Boot 實(shí)例化bean如何選擇代理方式
這篇文章主要為大家介紹了Spring Boot實(shí)例化bean如何選擇代理方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Redis中高并發(fā)讀寫(xiě)性能的深度解析與優(yōu)化
Redis 作為一款高性能的內(nèi)存數(shù)據(jù)庫(kù),廣泛應(yīng)用于緩存、消息隊(duì)列、實(shí)時(shí)統(tǒng)計(jì)等場(chǎng)景,本文將深入探討 Redis 的讀寫(xiě)并發(fā)能力,感興趣的小伙伴可以了解下2025-03-03ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作
這篇文章主要為大家介紹了ElasticSearch學(xué)習(xí)之文檔API相關(guān)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01JAVA 多線(xiàn)程之信號(hào)量(Semaphore)實(shí)例詳解
這篇文章主要介紹了JAVA 多線(xiàn)程之信號(hào)量(Semaphore)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01淺談Java中File文件的創(chuàng)建以及讀寫(xiě)
文中有非常詳細(xì)的步驟介紹了Java中file文件的創(chuàng)建以及讀寫(xiě),對(duì)剛開(kāi)始學(xué)習(xí)java的小伙伴們很有幫助,而且下文有非常詳細(xì)的代碼示例及注釋哦,需要的朋友可以參考下2021-05-05