进程:
应用程序的执行实例
有独立的内存空间和系统资源
线程:
CPU调度和分派的基本单位
执行运算的最小单位,可完成一个独立的控制流程
多线程:
如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为"多线程”
多个线程交替占用CPU资源,而非真正的并行执行
多线程好处:
充分利用CPU的资源,提高代码性能
简化编辑模型,更好的软件设计和架构
带来良好的用户体验
主线程:
main()方法即为主线程入口
产生其他子线程的线程
必须最后完成执行,因为它执行各种关闭操作
线程初体验
* @Description获取和设置主线程(名称)
*/
public class MainThread {
public static void main(String[] args) {
//获取当前的线程对象
Thread thread = Thread.currentThread();
//获取当前线程对象的名称
String name = thread.getName();
System.out.println("当前线程时:"+name);
//为当前线程重新设置名称
thread.setName("myThread");
name=thread.getName();
System.out.println("当前线程是:"+name);
}
}
继承Thread创建线程:
定义MyThread类继承Thread类
重写run()方法,编写线程执行体
创建线程对象,调用start()方法启动线程
* @Description创建并启动线程
*/
public class MyThread extends Thread{
public void run(){
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread()+getName()+":"+i);
}
}
//测试类
public static void main(String[] args) {
//创建线程对象
MyThread myThread=new MyThread();
MyThread myThread2=new MyThread();
//启动线程
myThread.start();
myThread2.start();
//是否可以调用run()启动线程?----不可以
//(1)只有主线程一个执行路径(2)依次调用了两次run()方法
//run()方法被当作main()中的一个普通方法,失去了线程的意义
myThread.start();
myThread2.start();
}
}
定义MyRunnable类实现Runnable接口
实现run()方法,编写线程执行体
创建线程对象,调用start()方法启动线程
Thread(Runnable target)
Thread(Runnable target,String name)
* @Description//创建线程:实现Runnable接口
*/
public class MyThread2 implements Runnable{
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
public static void main(String[] args) {
//创建线程对象
Runnable runnable=new MyThread2();
//Thread thread=new Thread(runnable)
Thread thread=new Thread(runnable,"mythread1");
Thread thread2=new Thread(runnable,"mythread2");
//启动线程
thread.start();
thread2.start();
}
}
本文详细介绍了进程与线程的概念,包括两者的区别与联系,以及如何在Java中通过继承Thread类或实现Runnable接口来创建和启动线程,旨在帮助读者深入理解多线程编程的基础。
3025

被折叠的 条评论
为什么被折叠?



