一、并行、串行、并發(fā)
專(zhuān)注于為中小企業(yè)提供網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)黑河免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
在了解java中多線程的三種實(shí)現(xiàn)方式之前,我們首先需要明白并行、串行、并發(fā)三個(gè)概念。
1.并行:多個(gè)CPU同時(shí)處理多個(gè)任務(wù);
2.串行:?jiǎn)蝹€(gè)CPU處理多個(gè)任務(wù),當(dāng)一個(gè)任務(wù)執(zhí)行完成之后下一個(gè)任務(wù)才能夠執(zhí)行;
3.并發(fā):?jiǎn)蝹€(gè)CPU處理多個(gè)任務(wù),每個(gè)任務(wù)都會(huì)被分一定的時(shí)間片,一個(gè)任務(wù)執(zhí)行一段時(shí)間無(wú)論完成與否都要切換另一個(gè)任務(wù)執(zhí)行。
在java中多線程其實(shí)就是并發(fā)的一種模式。
二、java實(shí)現(xiàn)多線程的三種方式
我們以買(mǎi)咖啡為例,現(xiàn)在咖啡店只有一個(gè)窗口,將每一個(gè)人買(mǎi)咖啡的過(guò)程視為一個(gè)任務(wù)。
1.實(shí)現(xiàn)Runnable接口
package multithreading; public class LRunnableOne { public static void buyCoffee(String name) { System.out.println(name+ "開(kāi)始買(mǎi)咖啡"); System.out.println(name+ "正在買(mǎi)咖啡"); System.out.println(name+ "買(mǎi)完了"); } public static void main(String[] args) { Thread t1= new Thread(new lr("張三")); Thread t2= new Thread(new lr("李四")); Thread t3= new Thread(new lr("王五")); System.out.println("run方法并不會(huì)啟動(dòng)新的線程,只是執(zhí)行線程中run內(nèi)的方法,仍然是在主線程上依次上進(jìn)行"); t1.run(); t2.run(); t3.run(); System.out.println("start方法會(huì)啟動(dòng)新的線程,并發(fā)執(zhí)行"); t1.start(); t2.start(); t3.start(); } } class lr implements Runnable{ String name; public lr(String name) { this.name = name; } @Override public void run() { LRunnableOne.buyCoffee(name); } }