JAVA学习

多线程的两个概念:

并发:同一时刻,有多个指令在单个CPU上交替执行

并行:在同一时刻,有多个指令在多个CPU上同时执行

多线程的实现方式:

1.继承Thread类的方式进行实现

1、自己定义一个类继承Thread

2、重写run方法

3、创建子类的对象,并启动线程(调用start方法)

2.实现Runnable接口的方式进行实现

1、自己定义一个类实现Runnable接口

2、重写里面的run方法

3、创建自己的类的对象(该对象表示多线程要执行的任务)

4、创建一个Thread类的对象,并开启线程

3.利用Callable接口和Future接口方式实现

特点:可以获取到多线程运行的结果

1.创建一个类实现Callable接口(有泛型限制,表示多线程返回的结果类型)

2.重写call(是有返回值的,表示多线程运行的结果)

3.创建MyCallable的对象(表示多线程要执行的任务)

4.创建FutureTask的对象(作用管理多线程运行的结果)

5.创建Thread类的对象,并启动(表示线程)

常用的成员方法:

细节:1、如果我们没有给线程设置名字,线程也是有默认的名字的:

格式:Thread-X(X序号,从0开始的)

2、如果我们要给线程设置名字,可以用set方法进行设置,也可以构造方法设置(要创建构造方法)

3、当JVM虚拟机启动之后,会自动的启动多条线程,其中有一条线程就叫main线程,他的作用就是去调用main方法,并执行里面的代码,在以前,我们写的所有代码,其实都是运行在main线程中的

线程优先级:

抢占式调度:随机性

守护线程:

当其他的非守护线程执行完毕之后,守护线程会陆续结束

线程的生命周期:

线程的安全问题:

同步代码块:

锁对象,一定要是唯一的(加static关键字)

同步方法:

就是把synchronized关键字加到方法上

特点1:同步方法是锁住方法里面所有的代码

特点2:锁对象不能自己指定

非静态:this

静态:当前类的字节码文件对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值