多进程和多线程
线程:在一个软件中,负责不同功能的子程序,称之为线程。
进程:是在计算机系统中正在运行的程序,都可以看做是一个进程。
面试题:
请问一个Java程序在运行的时候,最少有几个线程?
最少两个线程 1.main线程 2.JVM的垃圾回收机制
多线程的好处:
1. 可以让一个程序同时执行不同的任务
2. 可以提高资源的利用率
多线程的弊端:
1. 线程的安全问题
2. 增加了CPU的负担
3. 降低了其他程序CPU的执行概率
4. 容易出现死锁行为
如何创建一个线程?
1. 自定义一个类继承Thread类,那么这个类就可以看做是一个多线程类
2. 要求【重写】Thread类里边的run方法,把需要执行的自定义线程代码放入这个run方法
代码:
class MyThread extends Thread {
// 重写run方法
@Override
public void run() {
for (int i = 1; i <= 10; i++) {
System.out.println("自定义Thread类" + i);
}
}
}
public class Demo {
public static void main(String[] args) {
//1. 创建自定义线程类的对象
MyThread mt = new MyThread();
//2. 启动线程 ,尝试调用run方法
//mt.run(); 尝试调用了run方法相当于调用了一个普通的方法,而不是一个线程
mt.start(); //启动线程的方式,会发现,MyThread线程和main线程在抢占CPU资源
for (int i = 1; i <= 10; i++) {
System.out.println("main线程" + i);
}
}
}