java多線程中執(zhí)行多個程序的實(shí)例分析
我們知道多線程因?yàn)橥瑫r(shí)處理子線程的能力,對于程序運(yùn)行來說,能夠達(dá)到很高的效率。不過很多人對于多線程的執(zhí)行方法還沒有嘗試過,本篇我們將為大家介紹創(chuàng)建線程的方法,在這個基礎(chǔ)上,對程序執(zhí)行多條命令的方法進(jìn)行展示。下面我們就來看看具體的操作步驟吧。
1、創(chuàng)建線程對象我們需要用到Thread類,該類是java.lang包下的一個類,所以調(diào)用時(shí)不需要導(dǎo)入包。下面我們先創(chuàng)建一個新的子類來繼承Thread類,然后通過重寫run()方法(將需要同時(shí)進(jìn)行的任務(wù)寫進(jìn)run()方法內(nèi)),來達(dá)到讓程序同時(shí)做多件事情的目的。
import java.awt.Graphics;
import java.util.Random;
public class ThreadClass extends Thread{
public Graphics g;
//用構(gòu)造器傳參的辦法將畫布傳入ThreadClass類中
public ThreadClass(Graphics g){
this.g=g;
}
public void run(){
//獲取隨機(jī)的x,y坐標(biāo)作為小球的坐標(biāo)
Random ran=new Random();
int x=ran.nextInt(900);
int y=ran.nextInt(900);
for(int i=0;i<100;i++){
g.fillOval(x+i,y+i,30,30);
try{
Thread.sleep(30);
}catch(Exception ef){
}
}
}
}
2、在主類的按鈕事件監(jiān)聽器這邊插入這樣一段代碼,即每按一次按鈕則生成一個ThreadClass對象。
public void actionPerformed(ActionEvent e){
ThreadClass thc=new ThreadClass(g);
thc.start();
}
3、在這里我們生成ThreadClass對象并調(diào)用start()函數(shù)后,線程被創(chuàng)建并進(jìn)入準(zhǔn)備狀態(tài),每個線程對象都可以同時(shí)獨(dú)立執(zhí)行run()方法中的函數(shù),當(dāng)run()方法中的代碼執(zhí)行完畢時(shí)線程自動停止。
java8多線程運(yùn)行程序?qū)嵗?/span>
public class Main {
//method to print numbers from 1 to 10
public static void printNumbers() {
for (int i = 1; i <= 10; i++) {
System.out.print(i + " ");
}
//printing new line
System.out.println();
}
//main code
public static void main(String[] args) {
//thread object creation
Thread one = new Thread(Main::printNumbers);
Thread two = new Thread(Main::printNumbers);
//starting the threads
one.start();
two.start();
}
}
輸出
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
到此這篇關(guān)于java多線程中執(zhí)行多個程序的實(shí)例分析的文章就介紹到這了,更多相關(guān)java多線程中執(zhí)行多個程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用JSON.toJSONString格式化成json字符串時(shí)保留null屬性
這篇文章主要介紹了使用JSON.toJSONString格式化成json字符串時(shí)保留null屬性,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
MybatisPlus處理四種表與實(shí)體的映射及id自增策略分析
在最近的工作中,碰到一個比較復(fù)雜的返回結(jié)果,發(fā)現(xiàn)簡單映射已經(jīng)解決不了這個問題了,只好去求助百度,學(xué)習(xí)mybatis表與實(shí)體的映射應(yīng)該怎么寫,將學(xué)習(xí)筆記結(jié)合工作碰到的問題寫下本文,供自身查漏補(bǔ)缺,同時(shí)已被不時(shí)之需2022-10-10
Java 數(shù)據(jù)庫時(shí)間返回前端顯示錯誤(差8個小時(shí))的解決方法
本文主要介紹了Java 數(shù)據(jù)庫時(shí)間返回前端顯示錯誤(差8個小時(shí))的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08
springboot加載復(fù)雜的yml文件獲取不到值的解決方案
這篇文章主要介紹了springboot加載復(fù)雜的yml文件獲取不到值的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
使用kotlin集成springboot開發(fā)的超詳細(xì)教程
目前大多數(shù)都在使用java集成 springboot進(jìn)行開發(fā),本文演示僅僅將 java換成 kotlin,其他不變的情況下進(jìn)行開發(fā),需要的朋友可以參考下2021-09-09

