线程

java多线程

简单了解多线程:

1.创建多线程实现类

1.继承Thread类,实现run方法

class Thread_01 extends  Thread{
    @Override
    public void run() {
        super.run();
    }
}

2.实现Runnable接口,重写run方法

class Threa_02 implements Runnable{
    @Override
    public void run() {
        
    }
}
2.调用多线程类

1.调用Thread_01(继承了Thread类)

Tread_01 tread_01=new Tread_01();
tread_01.start();

2.调用Thread_02(实现了Runnable接口)

Thread_02 thread_02=new Thread_02();
Thread thread=new Thread(thread_02);
thread.start();

注意,实现Runnable的类必须借助Thread才能开启线程

3.Thread类的一些方法

1.start():启动线程并调用现成的run方法;
2.run():线程在调度过程中执行的操作;(就是你想让这个线程做一些什么,就写到这个方法里面)比如:打印1-10

public void run() {
    for (int i = 0; i < 10; i++) {
        System.out.println(i);
    }
}

3.currentThread():返回当前线程
4.getname():返回当前线程的名字,一般和currentThread配合着使用

System.out.println(Thread.currentThread().getName());

5.setname:设置当前现成的名字
6.yield();让当前线程放弃cpu权,经行线程让步,并进入到就绪状态,只让给优先级比自己高的或者相等的线程

7.join();假如由A,B两个线程,在A线程里面的run方法里面调用B线程的join方法,那末A线程会进入阻塞状态,即暂停,直到B线程执行完在执行A线程
8sleep():让当前线程休眠多长时间,然后进入就绪状态
9.isAlive():判断当前线程是否存活
10.stop():强制线程生命周期结束,即让线程死亡
11.getpriority():获取线程的优先级,默认是5
12setDaemon():将当前线程变成守护线程

4.线程的调度

1.同等优先级的线程使用的时间片轮转法
2.优先级不同的线程使用的抢占式调度算法,高优先级的线程抢占cpu

5.现成的分类

1.守护线程:守护线程是在后台执行的,是用来保护用户线程的,当用户线程全部执行完守护线程将会死亡;比如jc就是守护线程
2.用户线程:比如Thread_02,就是用户自己定义的线程

6.线程的状态

1.新建:当一个Thread类或者它的子类被创建的时候,新生的线程处于新建状态。
2.就绪:当调用线程的start方法后,便进入线程队列等待cpu时间片,此时的线程已经具备了运行的条件,但是还没有获取cpu执行权,所以该线程处于就绪状态。
3.运行:当就绪的线程获取了cpu执行权,进入了运行状态
4.阻塞:线程在运行期间因为某些原因让出cpu执行权被强制挂起,便进入阻塞状态
5.死亡:线程完成了它的所有工作,或者调用stop方法被防止死亡

7.线程的同步

1.同步代码块:

public void run() {
     for (int i = 0; i < 3; i++) {
         synchronized (object){
         moneny+=1000;
         System.out.println(Thread.currentThread().getName()+"存了1000,一共"+moneny+"元");
         try {
             Thread.sleep(1000);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }

     }
 }
}

2.同步方法:

public synchronized void run() {
     for (int i = 0; i < 3; i++) {
         moneny+=1000;
         System.out.println(Thread.currentThread().getName()+"存了1000,一共"+moneny+"元");
         try {
             Thread.sleep(1000);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
 }
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值