您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Java創(chuàng)建線程的方式實(shí)例分析”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java創(chuàng)建線程的方式實(shí)例分析”吧!
@Slf4j(topic = "c.Test1") public class Test1 { public static void main(String[] args) { //創(chuàng)建線程對(duì)象 Thread t = new Thread(){ @Override public void run() { //要執(zhí)行的任務(wù) log.debug("running"); } }; //設(shè)置線程的名字 t.setName("t1"); //啟動(dòng)線程 t.start(); log.debug("running"); } } /* 19:44:31.998 [main] DEBUG c.Test1 - running 19:44:31.998 [t1] DEBUG c.Test1 - running */
把線程和任務(wù)分開
Thread表示線程
Runnable代表可運(yùn)行的任務(wù)
@Slf4j(topic = "c.Test2") public class Test2 { public static void main(String[] args) { Runnable runnable = new Runnable() { @Override public void run() { //要執(zhí)行的任務(wù) log.debug("running"); } }; //創(chuàng)建線程對(duì)象 Thread t = new Thread(runnable, "t2"); //啟動(dòng)線程 t.start(); } } //19:52:27.646 [t2] DEBUG c.Test2 - running
在javajava中,有@FunctionalInterface@FunctionalInterface注解意味著該接口只有一個(gè)抽象方法,即可以用lambdalambda表達(dá)式的方式簡(jiǎn)化
@Slf4j(topic = "c.Test2") public class Test2 { public static void main(String[] args) { Runnable runnable = () -> { //要執(zhí)行的任務(wù) log.debug("running"); }; //創(chuàng)建線程對(duì)象 Thread t = new Thread(runnable, "t2"); //啟動(dòng)線程 t.start(); } }
因?yàn)镕utureTask可以接口一個(gè)Callable類型的參數(shù),用來(lái)處理有返回值的情況
@Slf4j(topic = "c.Test3") public class Test3 { public static void main(String[] args) throws ExecutionException, InterruptedException { //創(chuàng)建任務(wù)對(duì)象 FutureTask<Integer> task = new FutureTask<>(() -> { log.debug("running"); Thread.sleep(1000); return 100; }); /* 用lambda化簡(jiǎn)前 */ FutureTask<Integer> task1 = new FutureTask<>(new Callable<Integer>() { @Override public Integer call() throws Exception { log.debug("running"); Thread.sleep(1000); return 100; } }); //參數(shù)1是任務(wù)的對(duì)象, 參數(shù)2是線程的名字 Thread t = new Thread(task, "t3"); t.run(); //主線程堵塞,同步等待task執(zhí)行完畢的結(jié)果 Integer integer = task.get(); log.debug("結(jié)果是:{}", integer); } }
到此,相信大家對(duì)“Java創(chuàng)建線程的方式實(shí)例分析”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。