1.进程
是独立的运行程序 具有
独立性 各个进程之间是相互的独立的互不影响
互斥性 每个软件系统都会分配一个独立端口号 如果再启动另外一个软件,
另外一个软件如果端口和另一接 口一样那么 这个程序就启动不了,端口被占用的
2.线程
进程是由多个或者一个线程组成的。每个进程至少得有一个线程的支撑。
一个进程里面很多个线程在执行。线程的执行支撑起来了进程的执行。
进程包含了线程,线程是组成进程的最小基本单位
特性
1.抢占式运行
CPU在执行的时候,按照时间片来执行的,单位的时间片是抢占似执行
2.资源共享性
一个线程可以共享当前CPU, 网卡等
Java程序:
一个Java程序就是一个进程 一个类 就是一个应用程序 就是一个进程
一个Java程序里面至少两个线程:
main主函数线程
JVM垃圾回收器线程
3.线程和进程的区别
进程是一个应用程序,是独立的
线程是进程中最小的基本单位。
把进程比作生产车间,每个流水线就是一个线程
进程有独立性和互斥性
线程有抢占式资源共享特性
4.并发和并行
并发:同时发生,轮流交替执行
并行:真正意义的同时执行
5.创建线程的两种方式
1.一个是将一个类声明为Thread
的子类。 重写run
方法 。 然后可以分配。
class MyThread1 extends Thread{
// 一个是将一个类声明为Thread的子类。
// 这个子类应该重写run类的方法Thread 。
@Override
public void run() {
for (int i = 1; i <=100; i++) {
System.out.println("吃水煮肉片"+i);
}
}
}
class MyThread3 extends Thread{
@Override
public void run() {
for (int i = 1; i <=100; i++) {
System.out.println("吃毛血旺"+i);
}
}
}
class MyThread2 extends Thread{
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println("喝冰啤酒"+i);
}
}
}
-------------------------------------------------------------------
public static void main(String[] args) {
// 实例化Thread的子类,并启动线程
MyThread1 threcd1 =