多线程

Posted on 2023-06-16 19:50  liuxin6de1b  阅读(5)  评论(0编辑  收藏  举报

1.进程和线程的定义

进程:引用程序的执行实例(一个应用对应一个进程)

线程:CPU调用和分派的基本单元,进程中执行运算的最小单位

2.创建线程的种类

继承java.lang.Thread类

实现java.lang.Runnable接口

3.继承java.lang.Thread类

1)定义MyThread类继承Thread类

2)重写run()方法,编写线程执行体

3)创建线程对象,调用start()方法启动线程

继承java.lang.Thread类

public clss Demo extends thread{

  public void run(){

for(int i=0;i<100;i++)   

sout(Thread.currentThread().getName()+i) )      }

}                 

 psvm(){

Demo demo=new Demo   

     demo.start}

循环一百次demo线程。如果我要加一个线程就是Demo demo1=new Demo            demo1.start

核心要点:多个线程之间存在交替执行,不是真正的并行;

5.实现runnable接口创建单线程

public class implements Runnable{

public void run(){

for(int i=0;i<100;i++)

{sout(Thread.currentThread.getName()}

}

psvm{Demo.demo=new Demo()

Thread thread=new Thread(demo) 

 thread.start() }

}

6实现多线程runnable接口创建线程

多线程就是加一个

Thread thread1=new Thread(demo) 

thread1.start();

7.线程的状态

1.正常情况下流程:创建状态==》就绪状态==》运行状态==》死亡状态

2.异常情况下流程:创建状态==》就绪状态==》运行状态==》阻塞(休眠)状态==》就绪状态==》运行状态==》死亡状态

8.线程优先级

1)线程优先级1-10表示,1最低,默认优先级为5;

2)优先级高的线程获得CPU资源的概率较大;

(3)用thread . setPriority()给线程添加优先级

9.线程休眠

让线程暂时睡眠指定时长,线程进入阻塞状态

Sleep()可以是线程阻塞【休眠】

Thread. sleep(5000)  5000是5s 

 

Copyright © 2024 liuxin6de1b
Powered by .NET 9.0 on Kubernetes