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();
}
}
}