https://blog.csdn.net/mu_wind/article/details/124616643
一个进程可以包含多个线程
进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。
进程是程序执行相关资源(CPU、内存、磁盘等)分配的最小单元
进程是一系列线程的集合
进程之间是相互独立的,有自己的内存空间
线程是CPU资源分配的最小单元
线程需要的资源更少,可以看做是一种轻量级的进程
线程会共享进程中的内存,线程也有独立的空间(栈、程序计数器)
线程相互通信更加方便
class ExtendsThread extends Thread {
// 重写run方法, 条件自己的任务
@Override
public void run() {
// 添加一个任务打印一百次:MyThread线程任务 ----
for (int i = 1; i < 10; i++) {
System.out.println("ExtendsThread线程任务 ---- " + i);
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
//继承Thread
ExtendsThread extendsThread = new ExtendsThread();
// extendsThread.getName();
extendsThread.start();
}
}
public class ThreadDemo {
class RunnableThread implements Runnable {
@Override
public void run() {
System.out.println("RunnableThread 用实现Runnable接口实现线程");
}
}
public class ThreadDemo {
public static void main(String[] args) {
//实现runnable
RunnableThread runnableThread = new RunnableThread();
runnableThread.run();
}
}
class CallableTask implements Callable<Integer> {
@Override
public Integer call() throws Exception {
return new Random().nextInt();
}
}
public class ThreadDemo {
public static void main(String[] args) {
//创建Callable对象,传入FutureTask对象
FutureTask<Integer> task = new FutureTask<>(new CallableTask());
//创建FutureTask对象到Thread对象中
Thread thread = new Thread(task);
//启动线程
thread.start();
System.out.println("-----等待结果-----");
//获得返回值
try {
System.out.println(task.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
继承Thread类,每次都需要新建一个Thread,开销大
Java不支持双继承,继承Thread不能继承其它的类,语法有限制
实现Runnable接口,可以继承其它类,语法没有限制
Runnalbe接口强制要求实现run方法,不容易出现错误
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。