网问答>>Java学习day17-进程与线程
问题
已解决

Java学习day17-进程与线程

时间:2026-03-10 03:31:15
Java学习day17-进程与线程
最佳回答
进程是操作系统进行资源分配的基本单位;线程是操作系统调度执行的基本单位。进程:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位。每个进程都有自己独立的内存空间和系统资源,进程之间相互隔离,一个进程的崩溃不会直接影响其他进程。线程:线程是进程的一个执行单元,是CPU调度和分派的基本单位。一个进程可以包含多个线程,这些线程共享进程的内存空间和系统资源。线程的创建、切换和销毁比进程更轻量级,因此多线程编程可以提高程序的并发性和响应速度。继承Thread类:通过继承Thread类并重写其run()方法,然后创建该类的实例并调用start()方法来启动线程。实现Runnable接口:通过实现Runnable接口并实现其run()方法,然后将Runnable实例传递给Thread类的构造函数,最后调用start()方法启动线程。实现Callable接口:与Runnable类似,但Callable可以返回结果并抛出异常。通过FutureTask和ExecutorService来管理Callable任务。主线程:在Java程序中,main方法作为程序的入口,其执行的任务/逻辑构成主线程。子线程:通过上述三种方式创建的线程,与主线程并发执行。public class Test { public static void main(String[] args) { // 主线程第一部分 for (int i = 0; i 10; i++) { System.out.println("main1--" + i); } // 创建并开启子线程 TestThread t = new TestThread(); t.start(); // 启动子线程,自动执行run方法 // 主线程第二部分 for (int i = 0; i 10000; i++) { System.out.println("main2--" + i); } }}// 子线程类public class TestThread extends Thread { @Override public void run() { for (int i = 0; i 10000; i++) { System.out.println("子线程--" + i); } }}资源抢夺:由于主线程和子线程并发执行,它们会争抢CPU资源,导致输出结果交叉出现。执行顺序不确定:线程的执行顺序由操作系统调度决定,因此每次运行程序时,主线程和子线程的执行顺序可能不同。
时间:2026-03-10 03:31:20
本类最有帮助
Copyright © 2008-2013 www.wangwenda.com All rights reserved.冀ICP备12000710号-1
投诉邮箱: