Java并發(fā)和并行是Java編程中常見(jiàn)的概念,但是它們的具體含義和區(qū)別究竟能夠清晰地表述出來(lái)嗎?
Java并發(fā)就是在一個(gè)處理器上同時(shí)運(yùn)行多個(gè)任務(wù),這些任務(wù)互相之間不影響,甚至能夠協(xié)同工作。Java并行則是指在多個(gè)處理器上同時(shí)運(yùn)行多個(gè)任務(wù),這些任務(wù)之間互相獨(dú)立,可以不需要相互交流,單獨(dú)完成任務(wù)。
// Java并發(fā) Thread thread1 = new Thread(new Runnable() { @Override public void run() { // do something } }); Thread thread2 = new Thread(new Runnable() { @Override public void run() { // do something } }); thread1.start(); thread2.start(); // Java并行 ExecutorService executor = Executors.newFixedThreadPool(2); executor.execute(new Runnable() { @Override public void run() { // do something } }); executor.execute(new Runnable() { @Override public void run() { // do something } }); executor.shutdown();
在Java中,實(shí)現(xiàn)并發(fā)和并行可以使用多線程或者協(xié)程。多線程是指在同一進(jìn)程中并行運(yùn)行多個(gè)線程;協(xié)程是一種“輕量級(jí)線程”,可以運(yùn)行在同一個(gè)線程中,但是之間可以協(xié)作完成任務(wù)。
并發(fā)和并行都是提高程序效率的一種手段,在實(shí)際的開(kāi)發(fā)中需要靈活運(yùn)用。
上一篇Java常用框架和中間件
下一篇php 7.2.2教程