多线程

多线程:

一、程序、进程、线程的理解

程序:为完成特定任务,用某种语言编写一组指令的集合。也称一段静态代码。
进程:一个正在执行的程序。
线程:程序内一条执行路径。

补充:进程可以细化成多个线程。
每个线程,都拥有自己独立的程序计数器和栈
多个线程,共享同一个进程中的结构:方法区、堆。

二、并行与并发

1.单核CPU:假的多线程,主要是利用时间片的方式骗过我们,让我们误认为是多线程。
2.多核CPU: 更好的发挥多线程的效率。
3.并行:多个CPU执行多个任务。
4.并发:单个CPU采用时间片的方式执行多个任务。

三、创建多线程的两种方式

方式一:继承Thread类
①继承Thread类
②重写run() 将需要线程安全的代码放入run()中
③创建继承Thread类的对象
④调用对象的start()方法
方式二:实现Runnable接口
①实现Runnable接口
②实现run() 将需要线程安全的代码放入run()中
③创建继承Thread类的对象
④将被创建的对象作为参数创建Thread对象
⑤调用start()
两种方式的对比
开发中优先选择Runnable()方式,
1.因为java只能有单继承如果我继承了Thread类
就不能继承其他类 体现了局限性。
2.实现的方式更适合来处理多个线程共享数据的情况

四、Thread类中的常用方法

1.start():启动线程
2.run():需要实现多线程的代码放入里面
3.currentThread():获取当前线程
4.getName():获取线程名字
5.setName():设置线程名字
6.sleep():设置线程休眠时间 等待结束后继续执行后面的线程任务
7.join(): 当前线程调用其他线程的join()时 应让其他线程执行完后当前线程继续执行
8.stop():结束当前线程
9.yield(): 放弃CPU执行权
10.isAlive():判断是否存活

优先级:PRIORITY
MAX_PRIORITY:10
MIN_PRIORITY:1
NORM_PRIORITY:5

getPriority():获取当前线程的优先级
setPriority():设置当前线程的优先级

线程的分类:
守护线程 用户线程

五、Thread的生命周期

在这里插入图片描述

六、之后更新

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值