java进阶
1.线程与进程
1.1.线程与进程区别
- 线程是程序执行的最小单位,而进程是程序的一次执行过程,是操作系统分配资源的最小单位;
- 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
- 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信
号等),某进程内的线程在其他进程不可见; - 调度和切换:线程上下文切换比进程上下文切换要快得多
1.2.多线程如何创建
1.2.1.Thread
package com.sunyj.practice.t0011_进程与线程;/** * @author jia * @since 2020-08-15 23:35 */public class Thread01 extends Thread { public static void main(String[] args) { Thread01 thread01 = new Thread01(); thread01.start(); } @Override public void run() { System.out.println("thread01运行。。。"); }}
1.2.2.Runnable
package com.sunyj.practice.t0011_进程与线程;/** * @author jia * @since 2020-08-15 23:37 */public class Runnable01 implements Runnable { @Override public void run() { System.out.println("runnable01运行。。。"); } public static void main(String[] args) { new Thread(new Runnable01()).start(); }}
1.2.3.Callable
package com.sunyj.practice.t0011_进程与线程;import java.util.concurrent.Callable;/** * @author jia * @since 2020-08-15 23:39 */public class Callable01 implements Callable { @Override public String call() throws Exception { System.out.println("callable01运行。。。"); return "success"; } public static void main(String[] args) { Callable01 callable01 = new Callable01(); try { String call = callable01.call(); System.out.println(call); } catch (Exception e) { e.printStackTrace(); } }}